Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.4 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 Wydarzenie Dyskusja wydarzenia Szablon:TODO 10 2911 544801 214492 2026-06-01T00:03:24Z Persino 2851 544801 wikitext text/x-wiki {{Ambox | typ = styl | klasa = noprint | grafika = {{Plik|plik=Evolution-tasks.png|opis=Do zrobienia|rys=tak}} | tekst = '''W przygotowaniu:'''<br>{{{1}}} }}<noinclude>{{Dokumetacja}}</noinclude> dfxm31ukjksjfo48733uxx2umw2yol4 544802 544801 2026-06-01T00:03:39Z Persino 2851 544802 wikitext text/x-wiki {{Ambox | typ = styl | klasa = noprint | grafika = {{Plik|plik=Evolution-tasks.png|opis=Do zrobienia|rys=tak}} | tekst = '''W przygotowaniu:'''<br>{{{1}}} }}<noinclude>{{Dokumentacja}}</noinclude> fu2j1mw7pwou8lioqf39e0997lm0hl9 Szablon:Wersja do druku 10 6275 544765 543327 2026-05-31T19:15:47Z Persino 2851 544765 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_do_druku| {{Div|{{Div|{{plik|plik=Exquisite-print printer.png|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Jest dostępny podręcznik w formie biblii: {{lo|{{PEŁNANAZWAKSIĄŻKI|{{{1|{{FULLPAGENAME}}}}}}}/Wersja do druku|{{SUBNAZWAKSIĄŻKI|{{{1|{{FULLPAGENAME}}}}}}}}} {{Small|({{Span|klasa=plainlinks|{{LinkURL|strona={{PEŁNANAZWAKSIĄŻKI|{{{1|{{FULLPAGENAME}}}}}}}/Wersja do druku|parametry=action=edit|nazwa=edycja}}}})}}, w wersji do druku.}}}}}}<noinclude>{{Dokumentacja}}</noinclude> kysegsmklsxfrw098d4kpvwnwl3aqzv Szablon:Wersja PDF 10 6276 544756 497601 2026-05-31T18:46:25Z Persino 2851 544756 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint wersja_linków_do_stron_zbiorczych wersja_pdf| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> ahyfg1jresjf766fu8di8urjiapun3s 544770 544756 2026-05-31T19:16:14Z Persino 2851 544770 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> maflfz58ozlz63951ibdph5czbjthx7 544772 544770 2026-05-31T19:27:08Z Persino 2851 544772 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{1|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 0t2nur7nt8jxortc24yqatvu6f9sc4x 544773 544772 2026-05-31T19:28:44Z Persino 2851 544773 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{1|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> l6tra71v1chokydk9iwyxydfk8iphkb 544776 544773 2026-05-31T19:41:40Z Persino 2851 544776 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 61yxlzkisk5vx278ezaxmn8cgl3aees 544778 544776 2026-05-31T19:48:08Z Persino 2851 544778 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika '''{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> ezdz718qaex0efnc6lud7px9oy5h1fh 544779 544778 2026-05-31T19:48:33Z Persino 2851 544779 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika: '''{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> mood380uqcie6j2yjfj0nr6pdnq72dp 544782 544779 2026-05-31T19:51:03Z Persino 2851 544782 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika: '''„{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> hdsmh0jwsqgluep5cmisl8el3vui23u 544783 544782 2026-05-31T19:52:06Z Persino 2851 544783 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika: „'''{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}'''”. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 7mbov79skwm0uhs2d8evtlrnzjacbqm 544784 544783 2026-05-31T19:53:10Z Persino 2851 544784 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika: '''„{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> hdsmh0jwsqgluep5cmisl8el3vui23u 544787 544784 2026-05-31T23:11:07Z Persino 2851 544787 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika: '''„{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> hnb0yn756hxu586oq9d5nrrwa95l5e0 544788 544787 2026-05-31T23:18:32Z Persino 2851 544788 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika: '''„{{Jeśli niepuste|{{{3|}}}|{{lo|{{PEŁNANAZWAKSIĄŻKI|{{FULLPAGENAME}}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> svh7cc4rcoa8nua1yugrv511qqqkr0o 544791 544788 2026-05-31T23:31:56Z Persino 2851 544791 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_pdf {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Gnome-mime-application-pdf.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|wersja PDF}}''''' podręcznika: '''„{{lo|{{Jeśli niepuste|{{{3|}}}|{{PEŁNANAZWAKSIĄŻKI|{{FULLPAGENAME}}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.pdf|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> ofb3xycxc8fktveanoblw0w3wtuxleq Szablon:Kolekcja 10 16109 544794 476430 2026-05-31T23:46:09Z Persino 2851 544794 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron kolekcja| {{Div|{{Div|{{Plik|plik=Text document with shapes.svg|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Podręcznik jest dostępny w formie {{lr|Kolekcje/{{FULLPAGENAMEE:{{#if:{{{1|}}}|{{PEŁNANAZWAKSIĄŻKI|{{{1|}}}}}|{{PEŁNANAZWAKSIĄŻKI}}}}}}|kolekcji}}, którą można pobrać jako {{lz|s=Specjalna:Książka/render_collection/&writer=rl&colltitle=Wikibooks:Kolekcje/{{FULLPAGENAMEE:{{#if:{{{1|}}}|{{PEŁNANAZWAKSIĄŻKI|{{{1|}}}}}|{{PEŁNANAZWAKSIĄŻKI}}}}}}|n=PDF}}, {{lz|s=Specjalna:Książka/render_collection/&writer=epub&colltitle=Wikibooks:Kolekcje/{{FULLPAGENAMEE:{{#if:{{{1|}}}|{{PEŁNANAZWAKSIĄŻKI|{{{1|}}}}}|{{PEŁNANAZWAKSIĄŻKI}}}}}}|n=ePUB}} lub {{lz|s=Specjalna:Książka/render_collection/&writer=odf&colltitle=Wikibooks:Kolekcje/{{FULLPAGENAMEE:{{#if:{{{1|}}}|{{PEŁNANAZWAKSIĄŻKI|{{{1|}}}}}|{{PEŁNANAZWAKSIĄŻKI}}}}}}|n=ODF}}.}}}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> ltlqe9dhflstl39nsfqc3kbiwj7zkrf Szablon:Wersja ePUB 10 25760 544757 497605 2026-05-31T18:56:46Z Persino 2851 544757 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint wersja_linków_do_stron_zbiorczych wersja_ePUB| {{Div|{{Div|{{Plik|plik=Epub-logo-color-book.png|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja ePUB}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> q66i7nbsr22zo3yk1wxml6xzi1dqska 544767 544757 2026-05-31T19:16:04Z Persino 2851 544767 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_ePUB| {{Div|{{Div|{{Plik|plik=Epub-logo-color-book.png|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja ePUB}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 4xu5lcs6wyemcjnblrmbuxwzrghxj3g 544781 544767 2026-05-31T19:49:31Z Persino 2851 544781 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_ePUB| {{Div|{{Div|{{Plik|plik=Epub-logo-color-book.png|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja ePUB}}''''' podręcznika: '''{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> bti1w5f6qmts0ik91jhtjct960nm9kk 544786 544781 2026-05-31T19:54:02Z Persino 2851 544786 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_ePUB| {{Div|{{Div|{{Plik|plik=Epub-logo-color-book.png|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja ePUB}}''''' podręcznika: '''„{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 0u5fq57ixe0ec72grpig4ebvtxqdt00 544790 544786 2026-05-31T23:21:36Z Persino 2851 544790 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_ePUB| {{Div|{{Div|{{Plik|plik=Epub-logo-color-book.png|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja ePUB}}''''' podręcznika: '''„{{Jeśli niepuste|{{{3|}}}|{{lo|{{PEŁNANAZWAKSIĄŻKI|{{FULLPAGENAME}}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 3loa6cjvtotq4s7rzx3zdreb0izsjq1 544793 544790 2026-05-31T23:34:16Z Persino 2851 544793 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_ePUB| {{Div|{{Div|{{Plik|plik=Epub-logo-color-book.png|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja ePUB}}''''' podręcznika: '''„{{lo|{{Jeśli niepuste|{{{3|}}}|{{PEŁNANAZWAKSIĄŻKI|{{FULLPAGENAME}}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 5aeuyovcr8d1wyov3z0ozn8zbi9quzi Szablon:Wersja EPUB 10 27440 544758 497603 2026-05-31T18:58:02Z Persino 2851 544758 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint wersja_linków_do_stron_zbiorczych wersja_EPUB| {{Div|{{Div|{{Plik|plik=Epub-logo-color-book.png|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 44lxsq28owlxqu5z0xrep6m8lmdlh88 544759 544758 2026-05-31T18:58:45Z Persino 2851 544759 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint wersja_linków_do_stron_zbiorczych wersja_EPUB| {{Div|{{Div|{{Plik|plik=Icon epub file.svg|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 0tj6vo6t87uy1ppsz1xqg5eeirqntou 544769 544759 2026-05-31T19:16:09Z Persino 2851 544769 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_EPUB| {{Div|{{Div|{{Plik|plik=Icon epub file.svg|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 03zd22eqdj8vqoeislb3rfb4r4dtl3x 544774 544769 2026-05-31T19:29:25Z Persino 2851 544774 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_EPUB {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Icon epub file.svg|rozmiar={{#if:{{{1|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> ej8ldtb1iqfkri9k4fp1tz1e5bdcv27 544777 544774 2026-05-31T19:41:54Z Persino 2851 544777 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_EPUB {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Icon epub file.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika {{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> m8czo5820yqyil3ll6203ztxsl0ivq0 544780 544777 2026-05-31T19:49:00Z Persino 2851 544780 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_EPUB {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Icon epub file.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika: '''{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> j61zdl9l6og3sdbfn5zgclyaj53xesh 544785 544780 2026-05-31T19:53:37Z Persino 2851 544785 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_EPUB {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Icon epub file.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika: '''„{{Jeśli niepuste|{{{3|}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> 2fr9yjhyx2lz4iigrac0osxyqfvzauj 544789 544785 2026-05-31T23:21:05Z Persino 2851 544789 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_EPUB {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Icon epub file.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika: '''„{{Jeśli niepuste|{{{3|}}}|{{lo|{{PEŁNANAZWAKSIĄŻKI|{{FULLPAGENAME}}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> m8d1voteh5vfrt5i1mgee44c5vy74w1 544792 544789 2026-05-31T23:32:57Z Persino 2851 544792 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_EPUB {{#if:{{{2|}}}||wersja_z_info}}| {{Div|{{Div|{{Plik|plik=Icon epub file.svg|rozmiar={{#if:{{{2|}}}|50px|30px}}|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Dostępna jest '''''{{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|wersja EPUB}}''''' podręcznika: '''„{{lo|{{Jeśli niepuste|{{{3|}}}|{{PEŁNANAZWAKSIĄŻKI|{{FULLPAGENAME}}}}|{{NAZWAKSIĄŻKI|{{FULLPAGENAME}}}}}}}}”'''. {{Small|{{Jeśli niepuste|{{{2|}}}}} ({{lf|{{Jeśli niepuste|{{{1|}}}|{{NAZWASTRONY|{{FULLPAGENAME}}}}}}.epub|info}})}}}}}}}}<!-- -->{{#switch:{{NAMESPACE}}||Wikijunior={{Kategoria|Podręczniki z wersją PDF}}}}<!-- --><noinclude>{{Dokumentacja}}</noinclude> rpjr391brnnnesgjrdi3fy9dbsqgs1h Moduł:Parametry 828 45669 544812 543828 2026-06-01T09:12:56Z Persino 2851 544812 Scribunto text/plain local p={}; p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac,mnoga) local liczba_elementow_ponumerowanych_w_tablicy=0; local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_ponumerowanych_w_tablicy>1))then return liczba_elementow_ponumerowanych_w_tablicy;end; end; end; return liczba_elementow_ponumerowanych_w_tablicy; end; p["LiczbaElementówNumerowanychSzablonu"]=function(frame) local parametry_modul=require("Module:Parametry"); return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]); end; p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac,mnoga) local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); local liczba_elementow_nienazwanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_nienazwanych_w_tablicy=liczba_elementow_nienazwanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_nienazwanych_w_tablicy>1))then return liczba_elementow_nienazwanych_w_tablicy;end; end; end; end; return liczba_elementow_nienazwanych_w_tablicy; end; p["LiczbaParametrówNienazwanychSzablonu"] = function (frame) return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]) end; p["LiczbaElementówTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; return liczba_elementow_w_tablicy; end; p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac,czy_formy_numerkowe) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; local techniczne_modul=require("Module:Techniczne"); local wzor="^"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](przedrostek).."(%d+)$"; for _1,_2 in pairs(tabela)do local string_liczba=tonumber(_1) or nil; local czy_liczba=((string_liczba)and(czy_formy_numerkowe or p.TypeNumber(_1))and(string_liczba>0)); local zmienna=czy_liczba and przedrostek.._1 or nil; local element=(czy_liczba and tabela[zmienna] or nil) or (czy_liczba and tabela[_1] or (mw.ustring.match(tostring(_1),wzor) and tabela[_1] or nil) ); if(element)then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; end; return liczba_elementow_w_tablicy; end; function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0; end; function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1; else liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1; end; function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona, czy_od_zera) local liczba_maksimum=0; local liczba_minimum; for nazwa_parametru,wartosc_parametru in pairs(tabela)do local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$") if(liczba_z_parametru)then local liczba=tonumber(liczba_z_parametru) or (czy_od_zera and 0 or 1); liczba=(liczba>0)and liczba or (czy_od_zera and 0 or 1); liczba_maksimum=math.max(liczba_maksimum,liczba); if(not liczba_minimum)then liczba_minimum=liczba; else liczba_minimum=math.min(liczba_minimum,liczba); end; elseif(nazwa_parametru_okreslona==nazwa_parametru)then liczba_maksimum=math.max(liczba_maksimum,(czy_od_zera and 0 or 1)); if(not liczba_minimum)then liczba_minimum=czy_od_zera and 0 or 1; else liczba_minimum=math.min(liczba_minimum,czy_od_zera and 0 or 1); end; end; end; if(not liczba_minimum)then liczba_minimum=1;end; return liczba_minimum,liczba_maksimum; end; p["CzySąParametryNumerowaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzySąParametryNienazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametryNazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)~="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametrySzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame) local parametry_modul=require("Module:Parametry"); local czy_jest_taki_element=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_jest_taki_element)then return "tak";end; end; p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local i=1; local czy=false; for _1,_2 in pairs(args)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(_1==1)then czy=true;end; if(i>1)then return false; else i=i+1; end; end; end; end; if((czy)or(i==1))then return true;end; return false; end; p["KopiujTabelęŁańcuchów"]=function(args) local args2={}; local wzor_temp=args["wzór"];local wzor_wszystko=args["wzór wszystko"]; local podstawienie_temp=args.podstawienie;local podstawienie_wszystko=args["podstawienie wszystko"]; local wzor2_temp=args["wzór 2"];local wzor_wszystko_2=args["wzór wszystko 2"]; local przedrostek_temp=args.przedrostek;local przedrostek_wszystko=args["przedrostek wszystko"]; local przyrostek_temp=args.przyrostek;local przyrostek_wszystko=args["przyrostek wszystko"]; for name,value in pairs(args.tabela)do local wzor=wzor_temp and wzor_temp[name] or wzor_wszystko; local podstawienie=wzor and (podstawienie_temp and podstawienie_temp[name] or podstawienie_wszystko) or nil; if(wzor and podstawienie)then value=mw.ustring.gsub(value,wzor,podstawienie);end; local wzor2=wzor2_temp and wzor2_temp[name] or wzor_wszystko_2; if(wzor2)then value=mw.ustring.match(value,wzor2);end; if(value)then local przedrostek=przedrostek_temp and przedrostek_temp[name] or przedrostek_wszystko; local przyrostek=przyrostek_temp and przyrostek_temp[name] or przyrostek_wszystko; args2[name]=(przedrostek or '')..value..(przyrostek or ''); end; end; return args2; end; p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka2={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then tabelka2[name]=value; end; end; return tabelka2; end; p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka3={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then local czy=p.CzyJestTakiKluczTabeli(tabelka2,name); if(not czy)then tabelka3[name]=value; end; end; end; return tabelka3; end; p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); local szablonowe_modul=require("Module:Szablonowe"); local kopiuj_metatable=function(value,funkcja,funkcja2) local __metatabelka=getmetatable(value); if(__metatabelka)then if(__metatabelka.tablica)then --Dla [[Module:Szablonowe/Potrzebne]] local tabelka_metatable=__metatabelka.tablica(); local __metatabelka2={}; szablonowe_potrzebne_modul.MetaTabelkaSzablonowe(__metatabelka2); local value2={}; setmetatable(value2,__metatabelka2); local tabelka_metatable2=__metatabelka2.tablica(); funkcja2(tabelka_metatable,tabelka_metatable2); funkcja(value2,false); elseif(__metatabelka.PobierzGeneralnaTablica)then local tabelka_metatable=__metatabelka.PobierzGeneralnaTablica(); local __metatabelka2={}; szablonowe_modul.__MetaFunkcjaParsowanieSzablonu(__metatabelka2); local value2={}; setmetatable(value2,__metatabelka2); local tabelka_metatable2=__metatabelka2.PobierzGeneralnaTablica(value2); funkcja2(tabelka_metatable,tabelka_metatable2); funkcja(value2,false); else funkcja(value,true); end; else funkcja(value,true); end; end; local function kopiuj(tabelka,tabelka_nowa) local tabelka2=tabelka_nowa or {}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then if(type(value)=="table")then kopiuj_metatable(value,function(value,jak) if(jak)then tabelka2[name]=kopiuj(value); else tabelka2[name]=value; end; end,kopiuj); else tabelka2[name]=value; end; end; end; return tabelka2; end; local tabela_kopiuj={}; kopiuj_metatable(tabelka,function(value,jak) if(jak)then tabela_kopiuj=kopiuj(value); else tabela_kopiuj=value; end; end,kopiuj); return tabela_kopiuj; end; p["NazwanyLiczbą"] = function(frame) local pf=frame:getParent() local numer_parametru=frame.args[1] if(numer_parametru)then numer_parametru=tonumber(numer_parametru); if(numer_parametru and pf.args[numer_parametru])then return "tak" end end; return; end p["NazwanyCiągiem"] = function (frame) local pf=frame:getParent() local klucz_parametru=frame.args[1] if(klucz_parametru)then local klucz_parametru_do_liczby=tonumber(klucz_parametru); if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then return "tak" end end; return; end; function p.Nazwane(frame) local pf = frame:getParent() for _, nazwa_parametru in ipairs(frame.args)do local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)] if(wartosc_parametru_nazwanego)then return "tak" end end return; end function p.Nienazwane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for name, wartosc_parametru2 in pairs(pf.args) do if(type(name)=="number")then if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end; end end return; end function p.Numerowane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for _, wartosc_parametru2 in ipairs(pf.args) do if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end end return; end p["Odstępy"] = function(frame) local PobierzParametr=p.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local czy=PobierzParametr(2) or PobierzParametr("wewnątrz"); local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik"); local odstep_spacje=PobierzParametr(4) or PobierzParametr("spacje"); if(not p.CzyTak(nazwa))then return nazwa;end; local m_=(p.CzyTak(odstep_spacje) and "" or "_"); nazwa=mw.ustring.gsub(nazwa,"^[%s"..m_.."]+",""); nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+$","") if(p.CzyTak(czy))then nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+",(p.CzyTak(dolny_myslnik) and "_" or " ")); end; return nazwa; end; function p.DodajElementDoZbioru(tabela,wartosc) if(wartosc==nil)then return; end; if(type(tabela)~="table")then return;end; for _,element_tabeli in pairs(tabela)do if(element_tabeli==wartosc)then return false; end; end; table.insert(tabela,wartosc); return true; end; function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for _, element_tabeli in ipairs(tabela)do if(element_tabeli==wartosc)then return true; end; end; return false; end; function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for name,value in pairs(tabela)do if(type(name)=="number")then if(value==wartosc)then return true; end; end; end; return false; end; function p.CzyJestTakiKluczTabeli(tabela,klucz) if(klucz==nil)then return;end; if(type(tabela)~="table")then return;end; local wartosc=tabela[klucz]; if(wartosc~=nil)then return true;end; return false; end; function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc) if((klucz==nil)or(wartosc==nil))then return;end; if(type(tabela)~="table")then return;end; for __klucz, __wartosc in pairs(tabela)do if((__klucz==klucz)and(__wartosc==wartosc))then return true; end; end; return false; end; p["ŁączDwieTabele"] = function (tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2)) and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1)) and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,} or tabelka2) or tabelka1; end; p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNumerowaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNienazwaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączTabele"] = function(args,args2) local tabela={}; local par1=(args2.CzyPairsTablic)and pairs or ipairs; local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false; local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs; local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false; local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false; local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false; local nazwij_elementy_numerowane=(args2.NazwijElementyNumerowane) and true or false; for licznik, args_tabeli in par1(args)do if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then for name,value in par2(args_tabeli)do if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then if(nazwij_elementy_numerowane)then if(not tabela[name])then tabela[name]=value;end; else table.insert(tabela,value); end; elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then if(not tabela[name])then tabela[name]=value;end; end; end; end; end; return tabela; end; p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2) if(not tabelka_1)then return nil;end; if(not tabelka_2)then return tabelka_1;end; for name,_ in pairs(tabelka_1)do if(tabelka_2[name]~=nil)then tabelka_1[name]=nil; end; end; return tabelka_1; end; p["TwórzTabelęBezPowtarzającychKluczyTabel"]=function(args) local tabela_poczatkowa=args[1]; local tabela={}; local lens=#args; for name,value in pairs(tabela_poczatkowa)do local yes=false; for i=2,lens,1 do if(args[i][name]~=nil)then yes=true; break; end; end; if(not yes)then tabela[name]=value; end; end; return tabela; end; function p.TypeTable(zmienna) return (type(zmienna)=="table"); end; function p.TypeFunction(zmienna) return (type(zmienna)=="function"); end; function p.TypeString(zmienna) return (type(zmienna)=="string"); end; function p.TypeBoolean(zmienna) return (type(zmienna)=="boolean"); end; function p.TypeNumber(zmienna) return (type(zmienna)=="number"); end; function p.TypeNil(zmienna) return (zmienna==nil); end; local function CzyTakSilnik(args,funkcja) local parametry_modul=require("Module:Parametry"); local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1]; local argsfun; if(p.CzyTak(args[2]))then for name,value in pairs(args)do local typen=(type(name)=="number"); if(((typen)and((name~=1)and(name~=2)))or(not typen))then if(not argsfun)then argsfun={};end; argsfun[(typen and name>2) and (name-2) or name]=value; end; end; else parametr=tonumber(parametr) or parametr; if(type(parametr)=="string")then local parametr2=parametry_modul["Odstępy"](parametr); if(parametr2=="true")then parametr=true; elseif(parametr2=="false")then parametr=false; elseif(parametr2=="nil")then parametr=nil; else parametr=tonumber(parametr2) or parametr; end; end; end; return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil; end; p["CzyTakCiąg"]=function(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local ciag=PobierzParametr("ciąg") or PobierzParametr(1); local parametry=PobierzParametr("parametry") or PobierzParametr(2); local parametry_modul=require("Module:Parametry"); return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTakCiąg"); end; end; function p.CzyTak(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local zmienna;local parametry; if(czy_table)then local zmienna_temp=PobierzParametr("zmienna") or PobierzParametr(1); zmienna=zmienna_temp or frame; parametry=zmienna_temp and (PobierzParametr("parametry") or PobierzParametr(2)) or nil; else zmienna=frame; parametry=nil; end; if(zmienna~=nil)then if(p.TypeString(zmienna))then if(zmienna~="")then return "tak"; else return nil; end; elseif(p.TypeNumber(zmienna))then if(zmienna~=0)then return "tak"; else return nil; end; elseif(p.TypeBoolean(zmienna))then return (zmienna and "tak" or nil); elseif(p.TypeTable(zmienna))then local parametry_modul=require("Module:Parametry"); return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil); elseif(p.TypeFunction(zmienna))then return (zmienna(parametry) and "tak" or nil); else return nil; end; else return nil; end; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTak"); end; end; function p.PobierzFrameEwentualnieParent(frame) return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame); end; function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica) local TempFunc=function(frame) local pf=p.PobierzFrameEwentualnieParent(frame); local args=pf.args; if(p.TypeTable(args))then return args; else return nil; end; end; if(not p.TypeNil(frame))then return p.TypeTable(frame) and (TempFunc(frame) or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame); else return {}; end; end; function p.PobierzParametryRamki(frame) local TempFun1=function(tablica) return function(nazwa) return tablica[nazwa]; end; end; local TempFun2=function(wartosc) local tak=true; return function(nazwa) if(tak)then tak=false; return wartosc; end; return nil; end; end; local tablica_parametrow_ramki=p.TypeTable(frame) and (p.TypeTable(frame.args) and TempFun1(frame.args) or TempFun1(frame)) or TempFun2(frame); return function(nazwa) return tablica_parametrow_ramki(nazwa); end; end; function p.PobierzElementNumerowanyZFrameLubTablicy(frame) local tablica_parametrow_funkcji=p.TypeTable(frame[1]) and p.TypeTable(frame[1].args)and frame[1].args or frame; return function(nazwa) local wartosc=tablica_parametrow_funkcji[nazwa]; return wartosc; end; end; function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame) local __pobierz_parametr_table_args=nil; if(not p.TypeNil(frame))then if(p.TypeTable(frame))then local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent); if((not tak_frame_lub_parent)or(not frame.getParent))then local __pobierz_parametr_table_args_temp=p.CzyTak(czy_frame) and frame.args or p.PobierzArgsParametry(frame); __pobierz_parametr_table_args=function(nazwa) return __pobierz_parametr_table_args_temp[nazwa or 1],1; end; elseif(tak_frame_lub_parent)then local pf=(frame.getParent)and frame:getParent() or nil; __pobierz_parametr_table_args=function(nazwa) local wartosc=frame.args[nazwa or 1] or (pf and pf.args[nazwa or 1] or nil); return wartosc,2; end; end; else local tak=true; __pobierz_parametr_table_args=function(nazwa) if(tak)then tak=false; return frame,0; end; return nil,0; end; end; else __pobierz_parametr_table_args=function(nazwa) return nil,0; end; end; return function(nazwa) return __pobierz_parametr_table_args(nazwa); end; end; function p.And(frame) local czy="tak"; local parametry_modul=require("Module:Parametry"); local wartosc_uzyskana=nil; for _,wartosc in ipairs(frame.args)do czy=czy and parametry_modul["CzyTakCiąg"](wartosc); if(not czy)then return nil;end; wartosc_uzyskana=wartosc; end; return czy and wartosc_uzyskana or nil; end; function p.Or(frame) local czy=nil; for _,wartosc in ipairs(frame.args)do czy=czy or p["CzyTakCiąg"](wartosc); if(czy)then return wartosc;end; end; return nil; end; function p.Not(frame) local parametry_modul=require("Module:Parametry"); return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil; end; function p.Mniejszy(frame) local wyraz1=tonumber(frame.args[1]) or 0; local wyraz2=tonumber(frame.args[2]) or 0; if(wyraz1<wyraz2)then return "tak"; end; return; end; function p.IlePodano(frame) local args=frame.args; local args2=frame:getParent().args; local licznik=0; for _,name in pairs(args)do if(args2[name])then licznik=licznik+1; end; end; return licznik; end; p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter={}; function p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index(t,klucz) local html_modul=require("Module:Html"); klucz=html_modul.DecodeKoduHTMLZnaku(klucz); klucz=p["Odstępy"]{[1]=klucz,[2]="tak",}; klucz=mw.ustring.lower(klucz); return rawget(t,klucz); end; function p.IteratorPoNumerowanychElementachTablicy(t) local i=1; return function() local v=t[i]; if(v~=nil)then i=i+1;end; return v; end; end; p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu=function(tabela,funkcja) local keys={}; for name,_ in next,tabela do table.insert(keys,name); end; table.sort(keys,funkcja); return function(tablica,klucz) if(klucz==nil)then return keys[1];end; for k,_ in ipairs(keys)do if(keys[k]==klucz)then return keys[k+1]; end; end; end; end; function p.Max(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.max(parametr1,parametr2); end; function p.Min(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.min(parametr1,parametr2); end; return p; ts4bh04zc7uusgnqmhmags35f3s5bck 544813 544812 2026-06-01T09:15:11Z Persino 2851 544813 Scribunto text/plain local p={}; p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac,mnoga) local liczba_elementow_ponumerowanych_w_tablicy=0; local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_ponumerowanych_w_tablicy>1))then return liczba_elementow_ponumerowanych_w_tablicy;end; end; end; return liczba_elementow_ponumerowanych_w_tablicy; end; p["LiczbaElementówNumerowanychSzablonu"]=function(frame) local parametry_modul=require("Module:Parametry"); return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]); end; p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac,mnoga) local czy_puste_wliczac=p.CzyTak(wliczac); local czy_mnoga=p.CzyTak(mnoga); local liczba_elementow_nienazwanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_nienazwanych_w_tablicy=liczba_elementow_nienazwanych_w_tablicy+1; if((czy_mnoga)and(liczba_elementow_nienazwanych_w_tablicy>1))then return liczba_elementow_nienazwanych_w_tablicy;end; end; end; end; return liczba_elementow_nienazwanych_w_tablicy; end; p["LiczbaParametrówNienazwanychSzablonu"] = function (frame) return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]) end; p["LiczbaElementówTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; return liczba_elementow_w_tablicy; end; p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac,czy_formy_numerkowe) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_w_tablicy=0; local techniczne_modul=require("Module:Techniczne"); local wzor="^"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](przedrostek).."(%d+)$"; for _1,_2 in pairs(tabela)do local string_liczba=tonumber(_1) or nil; local czy_liczba=((string_liczba)and(czy_formy_numerkowe or p.TypeNumber(_1))and(string_liczba>0)); local zmienna=czy_liczba and przedrostek.._1 or nil; local element=(czy_liczba and tabela[zmienna] or nil) or (czy_liczba and tabela[_1] or (mw.ustring.match(tostring(_1),wzor) and tabela[_1] or nil) ); if(element)then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1; end; end; end; return liczba_elementow_w_tablicy; end; function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy=0; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0; end; function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame) return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]); end; function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local liczba_elementow_ponumerowanych_w_tablicy; for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1; else liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1); end; end; end; end; return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1; end; function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona, czy_od_zera) local liczba_maksimum=0; local liczba_minimum; for nazwa_parametru,wartosc_parametru in pairs(tabela)do local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$") if(liczba_z_parametru)then local liczba=tonumber(liczba_z_parametru) or (czy_od_zera and 0 or 1); liczba=(liczba>0)and liczba or (czy_od_zera and 0 or 1); liczba_maksimum=math.max(liczba_maksimum,liczba); if(not liczba_minimum)then liczba_minimum=liczba; else liczba_minimum=math.min(liczba_minimum,liczba); end; elseif(nazwa_parametru_okreslona==nazwa_parametru)then liczba_maksimum=math.max(liczba_maksimum,(czy_od_zera and 0 or 1)); if(not liczba_minimum)then liczba_minimum=czy_od_zera and 0 or 1; else liczba_minimum=math.min(liczba_minimum,czy_od_zera and 0 or 1); end; end; end; if(not liczba_minimum)then liczba_minimum=1;end; return liczba_minimum,liczba_maksimum; end; p["CzySąParametryNumerowaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in ipairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzySąParametryNienazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametryNazwaneSzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if(type(_1)~="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; end; return false; end; p["CzySąParametrySzablonu"] = function(frame) local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_sa_elementy_tablicy)then return "tak";end; return; end; p["CzySąElementyTablicy"]=function(tabela,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); for _1,_2 in pairs(tabela)do if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then return true; end; end; return false; end; p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame) local parametry_modul=require("Module:Parametry"); local czy_jest_taki_element=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]); if(czy_jest_taki_element)then return "tak";end; end; p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac) local czy_puste_wliczac=p.CzyTak(wliczac); local i=1; local czy=false; for _1,_2 in pairs(args)do if(type(_1)=="number")then if((not czy_puste_wliczac)or((czy_puste_wliczac)and(p.CzyTak(_2))))then if(_1==1)then czy=true;end; if(i>1)then return false; else i=i+1; end; end; end; end; if((czy)or(i==1))then return true;end; return false; end; p["KopiujTabelęŁańcuchów"]=function(args) local args2={}; local wzor_temp=args["wzór"];local wzor_wszystko=args["wzór wszystko"]; local podstawienie_temp=args.podstawienie;local podstawienie_wszystko=args["podstawienie wszystko"]; local wzor2_temp=args["wzór 2"];local wzor_wszystko_2=args["wzór wszystko 2"]; local przedrostek_temp=args.przedrostek;local przedrostek_wszystko=args["przedrostek wszystko"]; local przyrostek_temp=args.przyrostek;local przyrostek_wszystko=args["przyrostek wszystko"]; for name,value in pairs(args.tabela)do local wzor=wzor_temp and wzor_temp[name] or wzor_wszystko; local podstawienie=wzor and (podstawienie_temp and podstawienie_temp[name] or podstawienie_wszystko) or nil; if(wzor and podstawienie)then value=mw.ustring.gsub(value,wzor,podstawienie);end; local wzor2=wzor2_temp and wzor2_temp[name] or wzor_wszystko_2; if(wzor2)then value=mw.ustring.match(value,wzor2);end; if(value)then local przedrostek=przedrostek_temp and przedrostek_temp[name] or przedrostek_wszystko; local przyrostek=przyrostek_temp and przyrostek_temp[name] or przyrostek_wszystko; args2[name]=(przedrostek or '')..value..(przyrostek or ''); end; end; return args2; end; p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka2={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then tabelka2[name]=value; end; end; return tabelka2; end; p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local tabelka3={}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then local czy=p.CzyJestTakiKluczTabeli(tabelka2,name); if(not czy)then tabelka3[name]=value; end; end; end; return tabelka3; end; p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2) local czy_puste_wliczac_1=p.CzyTak(wliczac_1); local czy_puste_wliczac_2=p.CzyTak(wliczac_2); local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); local szablonowe_modul=require("Module:Szablonowe"); local kopiuj_metatable=function(value,funkcja,funkcja2) local __metatabelka=getmetatable(value); if(__metatabelka)then if(__metatabelka.tablica)then --Dla [[Module:Szablonowe/Potrzebne]] local tabelka_metatable=__metatabelka.tablica(); local __metatabelka2={}; szablonowe_potrzebne_modul.MetaTabelkaSzablonowe(__metatabelka2); local value2={}; setmetatable(value2,__metatabelka2); local tabelka_metatable2=__metatabelka2.tablica(); funkcja2(tabelka_metatable,tabelka_metatable2); funkcja(value2,false); elseif(__metatabelka.PobierzGeneralnaTablica)then local tabelka_metatable=__metatabelka.PobierzGeneralnaTablica(value); local __metatabelka2={}; szablonowe_modul.__MetaFunkcjaParsowanieSzablonu(__metatabelka2); local value2={}; setmetatable(value2,__metatabelka2); local tabelka_metatable2=__metatabelka2.PobierzGeneralnaTablica(value2); funkcja2(tabelka_metatable,tabelka_metatable2); funkcja(value2,false); else funkcja(value,true); end; else funkcja(value,true); end; end; local function kopiuj(tabelka,tabelka_nowa) local tabelka2=tabelka_nowa or {}; for name,value in pairs(tabelka)do if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then if(type(value)=="table")then kopiuj_metatable(value,function(value,jak) if(jak)then tabelka2[name]=kopiuj(value); else tabelka2[name]=value; end; end,kopiuj); else tabelka2[name]=value; end; end; end; return tabelka2; end; local tabela_kopiuj={}; kopiuj_metatable(tabelka,function(value,jak) if(jak)then tabela_kopiuj=kopiuj(value); else tabela_kopiuj=value; end; end,kopiuj); return tabela_kopiuj; end; p["NazwanyLiczbą"] = function(frame) local pf=frame:getParent() local numer_parametru=frame.args[1] if(numer_parametru)then numer_parametru=tonumber(numer_parametru); if(numer_parametru and pf.args[numer_parametru])then return "tak" end end; return; end p["NazwanyCiągiem"] = function (frame) local pf=frame:getParent() local klucz_parametru=frame.args[1] if(klucz_parametru)then local klucz_parametru_do_liczby=tonumber(klucz_parametru); if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then return "tak" end end; return; end; function p.Nazwane(frame) local pf = frame:getParent() for _, nazwa_parametru in ipairs(frame.args)do local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)] if(wartosc_parametru_nazwanego)then return "tak" end end return; end function p.Nienazwane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for name, wartosc_parametru2 in pairs(pf.args) do if(type(name)=="number")then if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end; end end return; end function p.Numerowane(frame) local pf = frame:getParent() for _, wartosc_parametru in ipairs(frame.args)do wartosc_parametru=mw.text.trim(wartosc_parametru) for _, wartosc_parametru2 in ipairs(pf.args) do if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then return "tak" end end end return; end p["Odstępy"] = function(frame) local PobierzParametr=p.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); local czy=PobierzParametr(2) or PobierzParametr("wewnątrz"); local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik"); local odstep_spacje=PobierzParametr(4) or PobierzParametr("spacje"); if(not p.CzyTak(nazwa))then return nazwa;end; local m_=(p.CzyTak(odstep_spacje) and "" or "_"); nazwa=mw.ustring.gsub(nazwa,"^[%s"..m_.."]+",""); nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+$","") if(p.CzyTak(czy))then nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+",(p.CzyTak(dolny_myslnik) and "_" or " ")); end; return nazwa; end; function p.DodajElementDoZbioru(tabela,wartosc) if(wartosc==nil)then return; end; if(type(tabela)~="table")then return;end; for _,element_tabeli in pairs(tabela)do if(element_tabeli==wartosc)then return false; end; end; table.insert(tabela,wartosc); return true; end; function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for _, element_tabeli in ipairs(tabela)do if(element_tabeli==wartosc)then return true; end; end; return false; end; function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc) if(wartosc==nil)then return;end; if(type(tabela)~="table")then return;end; for name,value in pairs(tabela)do if(type(name)=="number")then if(value==wartosc)then return true; end; end; end; return false; end; function p.CzyJestTakiKluczTabeli(tabela,klucz) if(klucz==nil)then return;end; if(type(tabela)~="table")then return;end; local wartosc=tabela[klucz]; if(wartosc~=nil)then return true;end; return false; end; function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc) if((klucz==nil)or(wartosc==nil))then return;end; if(type(tabela)~="table")then return;end; for __klucz, __wartosc in pairs(tabela)do if((__klucz==klucz)and(__wartosc==wartosc))then return true; end; end; return false; end; p["ŁączDwieTabele"] = function (tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2)) and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1)) and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,} or tabelka2) or tabelka1; end; p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2) local parametry_modul=require("Module:Parametry"); return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2; end; p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNumerowaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączNienazwaneTabele"]=function(args) local parametry_modul=require("Module:Parametry"); local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,}; return parametry_modul["ŁączTabele"](args,args2); end; p["ŁączTabele"] = function(args,args2) local tabela={}; local par1=(args2.CzyPairsTablic)and pairs or ipairs; local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false; local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs; local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false; local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false; local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false; local nazwij_elementy_numerowane=(args2.NazwijElementyNumerowane) and true or false; for licznik, args_tabeli in par1(args)do if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then for name,value in par2(args_tabeli)do if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then if(nazwij_elementy_numerowane)then if(not tabela[name])then tabela[name]=value;end; else table.insert(tabela,value); end; elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then if(not tabela[name])then tabela[name]=value;end; end; end; end; end; return tabela; end; p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2) if(not tabelka_1)then return nil;end; if(not tabelka_2)then return tabelka_1;end; for name,_ in pairs(tabelka_1)do if(tabelka_2[name]~=nil)then tabelka_1[name]=nil; end; end; return tabelka_1; end; p["TwórzTabelęBezPowtarzającychKluczyTabel"]=function(args) local tabela_poczatkowa=args[1]; local tabela={}; local lens=#args; for name,value in pairs(tabela_poczatkowa)do local yes=false; for i=2,lens,1 do if(args[i][name]~=nil)then yes=true; break; end; end; if(not yes)then tabela[name]=value; end; end; return tabela; end; function p.TypeTable(zmienna) return (type(zmienna)=="table"); end; function p.TypeFunction(zmienna) return (type(zmienna)=="function"); end; function p.TypeString(zmienna) return (type(zmienna)=="string"); end; function p.TypeBoolean(zmienna) return (type(zmienna)=="boolean"); end; function p.TypeNumber(zmienna) return (type(zmienna)=="number"); end; function p.TypeNil(zmienna) return (zmienna==nil); end; local function CzyTakSilnik(args,funkcja) local parametry_modul=require("Module:Parametry"); local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1]; local argsfun; if(p.CzyTak(args[2]))then for name,value in pairs(args)do local typen=(type(name)=="number"); if(((typen)and((name~=1)and(name~=2)))or(not typen))then if(not argsfun)then argsfun={};end; argsfun[(typen and name>2) and (name-2) or name]=value; end; end; else parametr=tonumber(parametr) or parametr; if(type(parametr)=="string")then local parametr2=parametry_modul["Odstępy"](parametr); if(parametr2=="true")then parametr=true; elseif(parametr2=="false")then parametr=false; elseif(parametr2=="nil")then parametr=nil; else parametr=tonumber(parametr2) or parametr; end; end; end; return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil; end; p["CzyTakCiąg"]=function(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local ciag=PobierzParametr("ciąg") or PobierzParametr(1); local parametry=PobierzParametr("parametry") or PobierzParametr(2); local parametry_modul=require("Module:Parametry"); return ciag and p.CzyTak{[1]=(p.TypeString(ciag) and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag),[2]=parametry,} or false; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTakCiąg"); end; end; function p.CzyTak(...) local frame_parametry={...}; local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1]; local czy_table=p.TypeTable(frame); if((czy_table and (not frame.getParent)) or (not czy_table))then local PobierzParametr=p.PobierzParametr(frame); local zmienna;local parametry; if(czy_table)then local zmienna_temp=PobierzParametr("zmienna") or PobierzParametr(1); zmienna=zmienna_temp or frame; parametry=zmienna_temp and (PobierzParametr("parametry") or PobierzParametr(2)) or nil; else zmienna=frame; parametry=nil; end; if(zmienna~=nil)then if(p.TypeString(zmienna))then if(zmienna~="")then return "tak"; else return nil; end; elseif(p.TypeNumber(zmienna))then if(zmienna~=0)then return "tak"; else return nil; end; elseif(p.TypeBoolean(zmienna))then return (zmienna and "tak" or nil); elseif(p.TypeTable(zmienna))then local parametry_modul=require("Module:Parametry"); return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil); elseif(p.TypeFunction(zmienna))then return (zmienna(parametry) and "tak" or nil); else return nil; end; else return nil; end; else local args=p.PobierzArgsParametry(frame); return CzyTakSilnik(args,"CzyTak"); end; end; function p.PobierzFrameEwentualnieParent(frame) return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame); end; function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica) local TempFunc=function(frame) local pf=p.PobierzFrameEwentualnieParent(frame); local args=pf.args; if(p.TypeTable(args))then return args; else return nil; end; end; if(not p.TypeNil(frame))then return p.TypeTable(frame) and (TempFunc(frame) or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame); else return {}; end; end; function p.PobierzParametryRamki(frame) local TempFun1=function(tablica) return function(nazwa) return tablica[nazwa]; end; end; local TempFun2=function(wartosc) local tak=true; return function(nazwa) if(tak)then tak=false; return wartosc; end; return nil; end; end; local tablica_parametrow_ramki=p.TypeTable(frame) and (p.TypeTable(frame.args) and TempFun1(frame.args) or TempFun1(frame)) or TempFun2(frame); return function(nazwa) return tablica_parametrow_ramki(nazwa); end; end; function p.PobierzElementNumerowanyZFrameLubTablicy(frame) local tablica_parametrow_funkcji=p.TypeTable(frame[1]) and p.TypeTable(frame[1].args)and frame[1].args or frame; return function(nazwa) local wartosc=tablica_parametrow_funkcji[nazwa]; return wartosc; end; end; function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame) local __pobierz_parametr_table_args=nil; if(not p.TypeNil(frame))then if(p.TypeTable(frame))then local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent); if((not tak_frame_lub_parent)or(not frame.getParent))then local __pobierz_parametr_table_args_temp=p.CzyTak(czy_frame) and frame.args or p.PobierzArgsParametry(frame); __pobierz_parametr_table_args=function(nazwa) return __pobierz_parametr_table_args_temp[nazwa or 1],1; end; elseif(tak_frame_lub_parent)then local pf=(frame.getParent)and frame:getParent() or nil; __pobierz_parametr_table_args=function(nazwa) local wartosc=frame.args[nazwa or 1] or (pf and pf.args[nazwa or 1] or nil); return wartosc,2; end; end; else local tak=true; __pobierz_parametr_table_args=function(nazwa) if(tak)then tak=false; return frame,0; end; return nil,0; end; end; else __pobierz_parametr_table_args=function(nazwa) return nil,0; end; end; return function(nazwa) return __pobierz_parametr_table_args(nazwa); end; end; function p.And(frame) local czy="tak"; local parametry_modul=require("Module:Parametry"); local wartosc_uzyskana=nil; for _,wartosc in ipairs(frame.args)do czy=czy and parametry_modul["CzyTakCiąg"](wartosc); if(not czy)then return nil;end; wartosc_uzyskana=wartosc; end; return czy and wartosc_uzyskana or nil; end; function p.Or(frame) local czy=nil; for _,wartosc in ipairs(frame.args)do czy=czy or p["CzyTakCiąg"](wartosc); if(czy)then return wartosc;end; end; return nil; end; function p.Not(frame) local parametry_modul=require("Module:Parametry"); return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil; end; function p.Mniejszy(frame) local wyraz1=tonumber(frame.args[1]) or 0; local wyraz2=tonumber(frame.args[2]) or 0; if(wyraz1<wyraz2)then return "tak"; end; return; end; function p.IlePodano(frame) local args=frame.args; local args2=frame:getParent().args; local licznik=0; for _,name in pairs(args)do if(args2[name])then licznik=licznik+1; end; end; return licznik; end; p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter={}; function p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index(t,klucz) local html_modul=require("Module:Html"); klucz=html_modul.DecodeKoduHTMLZnaku(klucz); klucz=p["Odstępy"]{[1]=klucz,[2]="tak",}; klucz=mw.ustring.lower(klucz); return rawget(t,klucz); end; function p.IteratorPoNumerowanychElementachTablicy(t) local i=1; return function() local v=t[i]; if(v~=nil)then i=i+1;end; return v; end; end; p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu=function(tabela,funkcja) local keys={}; for name,_ in next,tabela do table.insert(keys,name); end; table.sort(keys,funkcja); return function(tablica,klucz) if(klucz==nil)then return keys[1];end; for k,_ in ipairs(keys)do if(keys[k]==klucz)then return keys[k+1]; end; end; end; end; function p.Max(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.max(parametr1,parametr2); end; function p.Min(...) local frame={...}; local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame); local parametr1=tonumber(PobierzElement(1)); local parametr2=tonumber(PobierzElement(2)); return math.min(parametr1,parametr2); end; return p; 2jaubk2g1440cmnonbe971o4hzwozzj Szablon:Dopracować2 10 46002 544800 481239 2026-05-31T23:59:17Z Persino 2851 544800 wikitext text/x-wiki <includeonly>{{#invoke:Pudełko|Ogólne pudełko | cecha = {{#invoke:Pudełko|Przedmiotowa cecha pudełka|pierwszy człon kategorii błędu=Szablon dopracować|nieobsługiwane strony główne=tak|nieobsługiwane strony jednostek programowych=tak|(main)|Wikijunior|User|Category|Template|Module|Wikibooks|Help}} | nazwa = ambox | klasa = noprint | typ = | grafika = {{Plik|plik=Spain traffic signal p18.svg|rozmiar=35px}} | tekst = '''{{#if:{{{nazwij jednostką|}}}|Ta jednostka|{{#switch:{{#invoke:Pudełko|Typ jednostki}}|artykuł=Artykuł|podręcznik=Podręcznik|artykuł dla dzieci=Artykuł dla dzieci|podręcznik dla dzieci=Podręcznik dla dzieci|jednostka brudnopisu projektu=Ta jednostka brudnopisu projektu|strona brudnopisu opisu szablonu=Ta strona brudnopisu opisu szablonu|strona brudnopisu opisu modułu=Ta strona brudnopisu opisu modułu|strona kategorii=Ta strona kategorii|jednostka użytkownika=Ta jednostka użytkownika|strona pomocy=Ta strona pomocy|strona projektu=Ta strona projektu|strona opisu szablonu=Ta strona opisu szablonu|strona opisu modułu=Ta strona opisu modułu|#default=Ta jednostka}}}} {{#switch:{{#invoke:Pudełko|Typ jednostki}}|artykuł|podręcznik|artykuł dla dzieci|podręcznik dla dzieci=został zgłoszony|jednostka brudnopisu projektu|strona brudnopisu szablonu|strona brudnopisu modułu|inne|#default=została zgłoszona}} przez jednego z użytkowników za wymagający dopracowania z następującego powodu: ''"{{{1}}}"''.'''{{Br}}{{Small|Jeśli możesz, {{Span|klasa=plainlinks|{{LinkURL|strona={{#invoke:Pudełko|Pełna nazwa jednostki}}|parametry=action=edit|nazwa=popraw go}}}}. Przydatne wskazówki mogą znajdować się na {{LinkGłówna|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki}}|stronie dyskusji {{#if:{{{nazwij jednostką|}}}|tej jednostki|{{#switch:{{#invoke:Pudełko|Typ jednostki}}|artykuł=tego artykułu|podręcznik=tego podręcznika|artykuł dla dzieci=tego artykułu dla dzieci|podręcznik dla dzieci=tego podręcznika dla dzieci|jednostka brudnopisu projektu=tej jednostki brudnopisu projektu|strona brudnopisu opisu szablonu=tej strony brudnopisu opisu szablonu|strona brudnopisu opisu modułu=tej strony brudnopisu opisu modułu|strona kategorii=tej strony kategorii|jednostka użytkownika=tej jednostki użytkownika|strona pomocy=tej strony pomocy|strona projektu=tej strony projektu|strona opisu szablonu=tej strony opisu szablonu|strona opisu modułu=tej strony opisu modułu|#default=tej jednostki}}}}}}.}} | kategorie = {{#if:{{{bez kategorii|}}}||{{#invoke:Ramka|Szablon|parametry funkcji modułu pudełek=tak|Nazwa=Kategoria|{{#switch:{{#invoke:Pudełko|Typ jednostki}}|artykuł=Artykuły|podręcznik=Podręczniki|artykuł dla dzieci=Artykuły dla dzieci|podręcznik dla dzieci=Podręczniki dla dzieci|jednostka brudnopisu projektu=Jednostki brudnopisu projektu|strona brudnopisu opisu szablonu=Strony brudnopisu opisu szablonów|strona brudnopisu opisu modułu=Strony brudnopisu opisu modułów|strona kategorii=Strony kategorii|jednostka użytkownika=Jednostki użytkowników|strona pomocy=Strony pomocy|strona projektu=Strony projektu|strona opisu szablonu=Strony opisu szablonów|strona opisu modułu=Strony opisu modułów|#default=Jednostki}} wymagające dopracowania}}}} }}</includeonly><noinclude>{{Dokumentacja}}</noinclude> 1154sp48x5s7g5fuh249o3dbdhc9h8s Moduł:StronicowyParser/ZbieranieDanychStron 828 55009 544806 544588 2026-06-01T00:45:44Z Persino 2851 544806 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); kod_uchwytu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(kod_uchwytu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(kod_uchwytu,true); if(kod_uchwytu~="")then KtorySzablonMaZwracacKategorie(kod_uchwytu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local kod_uchwytu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(kod_uchwytu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] 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; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,((not czy_inna_wartosc_tekst)and true or false)); --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) 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 (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_aktualna,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_aktualna,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); end; end; function p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,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.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.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_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA)then __FUNKCJA(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); else stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieInnychStron(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych={}; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then return;end; p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(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 local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local function __FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==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; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); 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_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==4))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==2)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==3)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nil); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if(tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==4))then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku==1)then nazwa_artykulu=artykul; local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); elseif(kod_wyniku==2)then local nazwa_artykulu=artykul; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if((not kod_wyniku_przekierowan)or(kod_wyniku_bazowy==4))then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_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 tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local CzyLink=element_w_tablicy_obiekt.CzyLink; local CzyNum=element_w_tablicy_obiekt.CzyNum; local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_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 szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local tabela_elementow_strony_kodow={}; for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])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_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) 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="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) 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=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); 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; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) 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=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then 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="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local tekst=tabela_parametrow_szablonu["tekst"] or tabela_parametrow_szablonu["treść"] or tabela_parametrow_szablonu[1]; if(tekst)then local czy_szablon_wszystko=false; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if( (tab_szablony[nazwa_szablonu]) or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu]) or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu]) or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu]) )then if(not czy_artykul_korzystany)then tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")) if(self)then local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); if(czy_link_lub_pobierz)then p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end; return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- instrukcje warunkowe; return szablonowe_modul.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- wywołania ramek Lua w Scribunto return szablonowe_modul.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- tagi szablonowe; return szablonowe_modul.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon); end); czy_szablon_wszystko=czy_szablon_wszystko or true; if(wynik)then return wynik;end; elseif(obiekt=="ZMIENNA")then czy_szablon_wszystko=czy_szablon_wszystko or true; local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$"); if(zawartosc)then zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}"); return "{{(((}}"..zawartosc.."{{)))}}"; end; end; end); if(czy_szablon_wszystko)then local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); end; lista_dwuelementowa[2]=tekst; end; end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) 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="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) 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=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); 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; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) 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=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowSzablonuISzablonu); end; local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; if(czy_artykul_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,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; local toc; if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); 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=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,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=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); 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=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,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=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicy() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicy},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; end; return self.tabela_listy_danych_analizy_ksiazki; end; return p; 1l1akpsbeecyzfte801umo8sd3kybha 544818 544806 2026-06-01T10:40:40Z Persino 2851 544818 Scribunto text/plain local p={}; function p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,lista_dwuelementowa,kod) if(lista_dwuelementowa)then local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then tabela_elementow_strony_kodow[nazwa_obiektu]={}; tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(not uchwyty_bez_numeracji)then tab_obiekt.uchwyty_bez_numeracji={}; uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; end; uchwyty_bez_numeracji[kod]=lista_dwuelementowa; end; end; function p.WydobywanieUchwytuZeiBezNumeracji(self,tabela_elementow_strony_kodow,nazwa_obiektu,kod) local tab_obiekt=tabela_elementow_strony_kodow[nazwa_obiektu]; if(not tab_obiekt)then return nil;end; local uchwyty_bez_numeracji=tab_obiekt.uchwyty_bez_numeracji; if(uchwyty_bez_numeracji)then return uchwyty_bez_numeracji[kod]; end; end; function p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); kod_uchwytu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(kod_uchwytu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or kod_uchwytu; local html_modul=require("Module:Html"); kod_uchwytu=html_modul.DecodeHtml(kod_uchwytu,true); if(kod_uchwytu~="")then KtorySzablonMaZwracacKategorie(kod_uchwytu); local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_obiektu=true; end; table.insert(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); return lista_dwuelementowa; end; end; function p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local kod_uchwytu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[numer_numeracji]; if(kod_uchwytu)then local lista_dwuelementowa=p.RozpatrywanieElementuUchwytuNumeracji(self,kod_uchwytu,tablica_zmiennych, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return lista_dwuelementowa; end; end; function p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni_wszystkiego=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron; if(tablica_przestrzeni_wszystkiego)then local tabela_przestrzeni_ksiazek=tablica_przestrzeni_wszystkiego[nazwa_przestrzeni]; if(tabela_przestrzeni_ksiazek)then local tabela_ksiazek=tabela_przestrzeni_ksiazek[nazwa_przestrzeni_ksiazki] 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; end; if(not czy_element_wystepuje_w_tablicy)then local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu~=nazwa_przestrzeni_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu~=nazwa_ksiazki) or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=nazwa_artykulu))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni,nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych stron",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"))then if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisu treści do korzystanych stron"); end; end; end; end; end; function p.PusteParametryReferencji(self, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and (nazwa_ksiazki=="") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and (nazwa_artykulu=="") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and (uchwyt_obiektu=="") or nil; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,1); end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,2); end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu,3); end; end; end; function p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie,czy_inna_wartosc_tekst) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca,((not czy_inna_wartosc_tekst)and true or false)); --local ksiazkowe_modul=require("Module:Książkowe"); --pelna_nazwa_ksiazki=pelna_nazwa_ksiazki or ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](); --nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](); if((nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki)or(nazwa_ksiazki)or(nazwa_artykulu))then local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwa_przestrzeni_ksiazki or ksiazkowe_modul["NazwaPrzestrzeniKsiążki"](nil,tabela_nazw); local nazwa_ksiazki=nazwa_ksiazki or ksiazkowe_modul["NazwaTytułuKsiążki"](nil,tabela_nazw); local nazwa_artykulu=nazwa_artykulu or ksiazkowe_modul["NazwaArtykułuKsiążki"](nil,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false); end; end; function p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,czy_szablon_pudelkowy_strony_zbiorczej,KtorySzablonMaZwracacKategorie) 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 (nazwa_jednostki==""))then return;end; local szablonowe_modul=require("Module:Szablonowe"); if((nazwa_jednostki and mw.ustring.match(nazwa_jednostki,szablonowe_modul.NormaWzoruKodowaniaTekstu())) or (nazwa_przestrzeni and mw.ustring.match(nazwa_przestrzeni,szablonowe_modul.NormaWzoruKodowaniaTekstu())) )then return;end; local nazwy_modul=require("Module:Nazwy"); local ksiazkowe_modul=require("Module:Książkowe"); local html_modul=require("Module:Html"); if(nazwa_jednostki)then nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true); end; local tabela_nazw_art={}; local nazwa_jednostki=(nazwa_jednostki and mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1") or nil ) or ksiazkowe_modul["NazwaArtykułu"](nil,tabela_nazw_art); if(nazwa_przestrzeni)then nazwa_przestrzeni=html_modul.DecodeHtml(nazwa_przestrzeni,true); end; local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"](nil,tabela_nazw_art); local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local techniczne_modul=require("Module:Techniczne"); strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=self.nazwa_modulu_biezaca,}; --strona=ksiazkowe_modul["PEŁNANAZWASTRONY"](strona); local tabela_nazw={}; local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); local nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); local nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw))); local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw); if(KtorySzablonMaZwracacKategorie)then KtorySzablonMaZwracacKategorie();end; local tabela_listy_danych_analizy_ksiazki=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,nil,czy_szablon_pudelkowy_strony_zbiorczej); end; function p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_aktualna,bezuchwytowe) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[bezuchwytowe and 1 or 2]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[bezuchwytowe and 2 or 3]; local parametry_modul=require("Module:Parametry"); local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",}; end; local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul.DecodeHtml(pelna_nazwa_ksiazki,true); local techniczne_modul=require("Module:Techniczne"); pelna_nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=pelna_nazwa_ksiazki,[2]=nazwa_aktualna,}; ---- local tabela_nazw={}; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and (nazwy_modul["SUBNAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw)) or (nazwy_modul["NAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw))); --pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); end; return nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu; end; function p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna) local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,nazwa_modulu_aktualna); local nazwy_modul=require("Module:Nazwy"); local czy_inna_wartosc_tekst=true; if((nazwa_artykulu)and(nazwa_ksiazki))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwy_modul["NazwaModułu"]("",nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); elseif((nazwa_artykulu)and(not nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or (ksiazkowe_modul["NazwaKsiążki"]()..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); elseif((not nazwa_artykulu)and(nazwa_ksiazki))then local ksiazkowe_modul=require("Module:Książkowe"); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or ksiazkowe_modul["NazwaPrzestrzeni"](); local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or ksiazkowe_modul["NazwaKsiążki"](); ---- tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=nazwa_jednostki; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); else p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,nil,czy_inna_wartosc_tekst); end; end; function p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,nazwa_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie) local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu=p.SzablonyReferencjiParametrowych(tabela_parametrow_szablonu,self.nazwa_modulu_biezaca); ---- local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(uchwyt_obiektu))then local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); uchwyt_obiektu=stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu(uchwyt_obiektu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,true) or uchwyt_obiektu; local html_modul=require("Module:Html"); uchwyt_obiektu=html_modul.DecodeHtml(uchwyt_obiektu,true); end; ---- local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); ---- if(parametry_modul.CzyTak(uchwyt_obiektu))then nazwa_artykulu=(nazwa_artykulu or (nazwa_ksiazki and "" or nil)); if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; elseif(nazwa_ksiazki=="")then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,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.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni) or(nazwa_przestrzeni_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu) or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu) or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then p.LinkowanieInnychStron(self,nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul) p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,nil); p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu))then p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak uchwytu",nazwa_obiektu); end; KtorySzablonMaZwracacKategorie(uchwyt_obiektu); end; function p.LinkowanieFinalizowaniePrac(self,tablica_zmiennych,nazwa_obiektu,uchwyt_obiektu,tablica_analizy_obiektow_strony_dany_modul) local linkobiekttab=tablica_zmiennych.linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tablica_zmiennych.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_przestrzeni_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu; local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki)))then p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; tablica_zmiennych.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,__FUNKCJA) local pudelko_modul=require("Module:Pudełko"); if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni)))or(nazwa_przestrzeni==""))) and((nazwa_przestrzeni_ksiazki)and(((nazwa_przestrzeni_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_przestrzeni_ksiazki)))or(nazwa_przestrzeni_ksiazki==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_ksiazki))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_artykulu)))or(nazwa_artykulu==""))) )then if(__FUNKCJA)then __FUNKCJA(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"))then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki) and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy korzystanych stron"); else stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nieprawidłowe nazwy stron dołączanych do stron"); end; end; end; end; function p.LinkowanieInnychStron(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) p.SprawdzanieCzyJestNiepoprawnaNazwaStrony(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu,function() local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tablica_zmiennych={}; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, false,tablica_zmiennych); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak(tabela_listy_danych_analizy_ksiazki0))then return;end; p.SprawdzanieCzyJestTakiElementSpisuRzeczyWoluminowychPozycji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local CzyLink=czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2.CzyLink; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in ipairs(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 local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",(CzyLink and "Link" or "Pobierz")..nazwa_obiektu); end; p.PusteParametryReferencji(self,nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"); end; end; else p.PusteParametryReferencji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; end); end; function p.ZbieranieInformacjiStronyEwentualnieWrazSkojarzonymi(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu, czy_artykul_korzystany,tablica_zmiennych,czy_szablon_pudelkowy_strony_zbiorczej) local function __FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end; local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki]; if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end; local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki]; if(not tablica_ksiazki.lista_podstron_woluminu)then tablica_ksiazki.lista_podstron_woluminu={};end; if(nazwa_artykulu)then if(not tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu])then tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]={};end; local artykul_analizowany=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu]; return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany; else return tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki; end; end; local function __FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if(not czy_artykul_korzystany)then if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu and self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==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; if(self.tabela_listy_danych_analizy_ksiazki)then if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)then local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; if(tabela_przestrzeni)then local tabela_przestrzeni_ksiazki=tabela_przestrzeni[nazwa_przestrzeni_ksiazki]; if(tabela_przestrzeni_ksiazki)then local tabela_ksiazka=tabela_przestrzeni_ksiazki[nazwa_ksiazki]; if(tabela_ksiazka)then local lista_artykolow=tabela_ksiazka.lista_podstron_woluminu; if(lista_artykolow)then local tabela_artykul=lista_artykolow[nazwa_artykulu]; if(tabela_artykul)then return 0,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni; end; end; end; end; end; else return nil; end; else return nil; end; return true; end; local nazwy_modul=require("Module:Nazwy"); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local function StronaSubstFunkcja(tabela_artykul,spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu) if((czy_szablon_pudelkowy_strony_zbiorczej)and(not czy_artykul_korzystany)and(tabela_artykul)and(not tabela_artykul.strona_zbiorcza))then --local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return "tak";end;local NieFun=function(frame) return "";end; tabela_artykul.strona_zbiorcza=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; end; if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; ---- local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy"); 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_przestrzeni_ksiazki,"^([^/]+)$"))) and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_przestrzeni_ksiazki,"^%s*[Bb]rudnopis/([^/]+)$"))) )then stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"strony poza zakresem obsługiwanym",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; ---- local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local parametry_modul=require("Module:Parametry"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); ---- local tekst_rozwiniety_calego_artykulu_ref=nil; local tablica_analizy_obiektow_strony_dany_modul_ref=nil; local tablica_danych_parametrow_szablonu_strony_ref=nil; ---- local function InneInformacjePrzebneDoAnalizowanejKsiazki() if(not (stronicowyparser_problemy_modul.CzyJestTakiElementTabeliProblemu(self,"strony poza zakresem obsługiwanym",nazwa_przestrzeni, nazwa_przestrzeni_ksiazki,nazwa_ksiazki)))then if((nazwa_przestrzeni)and(nazwa_przestrzeni_ksiazki)and(nazwa_ksiazki))then if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"])then self.tabela_listy_danych_analizy_ksiazki["CzyArtykułKsiążki"]="tak";end; end; local czy_ksiazka_istnieje_w_tablicy=((tablica_ksiazki)and(tablica_ksiazki.czy_spis_analizowano))and true or false; if(not czy_ksiazka_istnieje_w_tablicy)then tablica_ksiazki.czy_spis_analizowano=true; local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści"); local nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp; local tabela_artykulow,tabela_licencji_spisu_tresci,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci=stronicowyparser_spistresci_modul.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,function(nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona) local tablica_przestrzeni_strona=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni_strona]; if(tablica_przestrzeni_strona)then local tablica_przestrzeni_ksiazki_strona=tablica_przestrzeni_strona[nazwa_przestrzeni_ksiazki_strona]; if(tablica_przestrzeni_ksiazki_strona)then local tablica_ksiazki_strona=tablica_przestrzeni_ksiazki_strona[nazwa_ksiazki_strona]; if(tablica_ksiazki_strona)then if(tablica_ksiazki_strona.spis)then nazwa_przestrzeni_strona_temp,nazwa_przestrzeni_ksiazki_strona_temp,nazwa_ksiazki_strona_temp=nazwa_przestrzeni_strona,nazwa_przestrzeni_ksiazki_strona,nazwa_ksiazki_strona; tablica_ksiazki.spis=tablica_ksiazki_strona.spis; tablica_ksiazki.licencja=tablica_ksiazki_strona.licencja; tablica_ksiazki.nazwa_bazowego_spisu=tablica_ksiazki_strona.nazwa_bazowego_spisu; tablica_ksiazki.tab_inne_spisy=tablica_ksiazki_strona.tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=tablica_ksiazki_strona.dodatkowe_strony_woluminu; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=tablica_ksiazki_strona.adres_woluminu_bazowego_spisu_rzeczy; tablica_ksiazki.referencja_do_nowej_formy_spisu={tablica_przestrzeni_strona,tablica_przestrzeni_ksiazki_strona,tablica_ksiazki_strona,}; return 1; end; end; end end; end,function(tekst_rozwiniety_calego_artykulu_ref_spis,nazwa_przestrzeni_ref_spis,nazwa_przestrzeni_ksiazki_ref_spis,nazwa_ksiazki_ref_spis,nazwa_artykulu_ref_spis,tablica_analizy_obiektow_strony_dany_modul_ref_spis,tablica_danych_parametrow_szablonu_strony_ref_spis) ---- if((nazwa_przestrzeni==nazwa_przestrzeni_ref_spis)and(nazwa_przestrzeni_ksiazki==nazwa_przestrzeni_ksiazki_ref_spis)and(nazwa_ksiazki==nazwa_ksiazki_ref_spis)and(nazwa_artykulu==nazwa_artykulu_ref_spis))then tekst_rozwiniety_calego_artykulu_ref=tekst_rozwiniety_calego_artykulu_ref_spis; local parametry_modul=require("Module:Parametry"); tablica_analizy_obiektow_strony_dany_modul_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_analizy_obiektow_strony_dany_modul_ref_spis); tablica_danych_parametrow_szablonu_strony_ref=parametry_modul["KopiujRekurencyjnieTabelęElementów"](tablica_danych_parametrow_szablonu_strony_ref_spis); end; ---- end); local function __FUNKCJA_SPISU(tablica_ksiazki,czy_podac_adres) tablica_ksiazki.spis=tabela_artykulow; if(czy_artykul_korzystany)then tablica_ksiazki.licencja=tabela_licencji_spisu_tresci; end; tablica_ksiazki.nazwa_bazowego_spisu=nazwa_glownego_spisu; tablica_ksiazki.tab_inne_spisy=tab_inne_spisy; tablica_ksiazki.dodatkowe_strony_woluminu=dodatkowe_artykuly; tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy=czy_podac_adres and adres_ksiazki_glownego_spisu_tresci or nil; end; if(tabela_artykulow==0)then if(czy_artykul_korzystany)then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"korzystana strona główna nie istnieje"); else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"dołączone strony główne nie istnieją",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; elseif(tabela_artykulow)then if(parametry_modul.TypeTable(tabela_artykulow))then if(adres_ksiazki_glownego_spisu_tresci)then __FUNKCJA_SPISU(tablica_ksiazki,true); local tablica_ksiazki_stara=tablica_ksiazki; local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1]; local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2]; local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3]; if((kod_wyniku==1)or(kod_wyniku==4))then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then local nazwa_artykulu=artykul; StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni ,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==2)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,artykul); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; elseif(kod_wyniku==3)then local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nil); tablica_ksiazki_stara.referencja_do_nowej_formy_spisu={tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,}; __FUNKCJA_SPISU(tablica_ksiazki,false); return nil,nil,artykul,kod_wyniku; end; else __FUNKCJA_SPISU(tablica_ksiazki,false); end; elseif(tabela_artykulow~=1)then local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku,true; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku,true; end; end; else if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"))then if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu~=""))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"brak spisów treści do korzystanych książek na ich stronach głównych"); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"brak spisów treści do dołączonych książek na ich stronach głównych",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki); end; end; end; end; end; end; ---- local wartosc_wyniku,wynik_bledu,artykul_bazowy,kod_wyniku_bazowy=InneInformacjePrzebneDoAnalizowanejKsiazki(); if(wynik_bledu)then return wartosc_wyniku;end; local kod_wyniku_przekierowan=kod_wyniku_bazowy; ---- --if((not tablica_przestrzeni)or(not tablica_przestrzeni_ksiazki)or(not tablica_ksiazki)or(not artykul_analizowany))then -- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); --end; ---- if(tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy)and((kod_wyniku_bazowy==1)or(kod_wyniku_bazowy==4))then ---- nazwa_przestrzeni=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[1]; nazwa_przestrzeni_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[2]; nazwa_ksiazki=tablica_ksiazki.adres_woluminu_bazowego_spisu_rzeczy[3]; nazwa_artykulu=artykul_bazowy; ---- tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki=tablica_ksiazki.referencja_do_nowej_formy_spisu[1],tablica_ksiazki.referencja_do_nowej_formy_spisu[2],tablica_ksiazki.referencja_do_nowej_formy_spisu[3]; end; local tabela_artykulow=tablica_ksiazki.spis; if(tabela_artykulow)then local nazwa_glownego_spisu=tablica_ksiazki.nazwa_bazowego_spisu; local tab_inne_spisy=tablica_ksiazki.tab_inne_spisy; local dodatkowe_artykuly=tablica_ksiazki.dodatkowe_strony_woluminu local artykul,kod_wyniku=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,false); if(kod_wyniku==1)then nazwa_artykulu=artykul; local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); elseif(kod_wyniku==2)then local nazwa_artykulu=artykul; local tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); end; kod_wyniku_przekierowan=kod_wyniku_przekierowan or kod_wyniku; end; local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); local PrzekierownieAwaryjne=function() if((not kod_wyniku_przekierowan)or(kod_wyniku_bazowy==4))then --local artykul2,kod_wyniku2=stronicowyparser_potrzebne_modul.OdpowiednikNaPrzemianArtykularnychStronWoluminu(tabela_artykulow,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,true); local techniczne_modul=require("Module:Techniczne"); local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu); if(strona)then if(strona~=nazwa_modulu)then ---- local tabela_nazw={}; nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona,tabela_nazw); nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona,tabela_nazw); nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona,tabela_nazw) or nazwy_modul["NAZWAKSIĄŻKI"](strona,tabela_nazw)); nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazwa); local wartosc_wyniku,tabela_artykul,lista_artykolow,tabela_ksiazka,tabela_przestrzeni_ksiazki,tabela_przestrzeni=__FUNKCJA(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(not wartosc_wyniku)then return wartosc_wyniku; elseif((wartosc_wyniku==0)and(tabela_artykul))then StronaSubstFunkcja(tabela_artykul,tabela_ksiazka.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); return wartosc_wyniku; end; tablica_przestrzeni,tablica_przestrzeni_ksiazki,tablica_ksiazki,artykul_analizowany=__FUNKCJA_ARTYKULU(nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); nazwa_modulu=strona; else return 0; end; end; end; end; local wynik=PrzekierownieAwaryjne(); if(czy_artykul_korzystany)then self.nazwa_modulu_biezaca=nazwa_modulu; end; if(wynik)then return wynik;end; ---- if(czy_artykul_korzystany)then if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu))then self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni; self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu=nazwa_przestrzeni_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_woluminu=nazwa_ksiazki; self.tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu=nazwa_artykulu; end; end; local nazwa_modulu_aktualna_czy_biezaca=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu) or nazwa_modulu; -- przydzielanie tablicy if(czy_artykul_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 tablica_zmiennych)then tablica_zmiennych={};end; if(not tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2)then tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2={};end; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); for _,element_w_tablicy_obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do local CzyLink=element_w_tablicy_obiekt.CzyLink; local CzyNum=element_w_tablicy_obiekt.CzyNum; local wartosc=element_w_tablicy_obiekt[1]; tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum,}; if(czy_artykul_korzystany)then tablica_zmiennych.linkobiekt[wartosc]={CzyLink=CzyLink,CzyNum=CzyNum;};end; end; local function StronaZbiorcza() if(czy_artykul_korzystany)then local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst"); local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end; local wynik=stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,tablica_ksiazki.spis,nil,TakFun,NieFun,nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); artykul_analizowany.strona_zbiorcza=(wynik and "tak" or ""); return wynik; end; return nil; end; local strona_zbiorcza=StronaZbiorcza(); local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,""); local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); ---- local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; if((not tekst_rozwiniety_calego_artykulu_ref)or(not tablica_analizy_obiektow_strony_dany_modul_ref)or(not tablica_danych_parametrow_szablonu_strony_ref))then tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))and true or nil), nil) else tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=tekst_rozwiniety_calego_artykulu_ref,tablica_analizy_obiektow_strony_dany_modul_ref,tablica_danych_parametrow_szablonu_strony_ref; end; ---- if(not czy_artykul_korzystany)then if(not tekst_rozwiniety_calego_artykulu)then return 0;end; end; if(czy_artykul_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 szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); if((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.inna_strona_aktualna_niz_biezaca))then local aktualna_nazwa_modulu=self.tabela_listy_danych_analizy_ksiazki.alternatywna and nazwa_modulu_aktualna_czy_biezaca or nazwy_modul["NazwaModułu"](self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_przestrzeni_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_ksiazki,self.tabela_listy_danych_analizy_ksiazki.aktualna_nazwa_artykulu); local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(self,aktualna_nazwa_modulu); if(tekst)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst,aktualna_nazwa_modulu); local tablica_danych_parametrow_szablonu_strony={}; for szablon,obiekt,kod in iterator do if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,aktualna_nazwa_modulu,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if(stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return true; elseif(stronicowyparser_obiekty_modul.strona_start[nazwa_szablonu])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return true; end; end); if(wynik)then break;end; end; end; end; end; local uzyskano_w_wyniku_parsowania_wywolanie_szablonu; local analiza_stron_korzystanych_zbiorczych=nil; local stronastart=nil; ---- local tablica_obiekty=stronicowyparser_obiekty_modul.obiekty; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local format_elementowy_referencji_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_referencji_obiektowy; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; local szablony_wykorzystywane_przez_strony_zbiorcze=stronicowyparser_obiekty_modul.szablony_wykorzystywane_przez_strony_zbiorcze; local format_elementowy_obiektowy=stronicowyparser_obiekty_modul.format_elementowy_obiektowy; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.numerowane_obiekty; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_napisu_wprowadzenia_tekstu; local szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu=stronicowyparser_obiekty_modul.szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane.nienumerowane_obiekty_tekstu; ---- local strona_start=stronicowyparser_obiekty_modul.strona_start; local strona_start_ze_spisem_rzeczy_strony=stronicowyparser_obiekty_modul.strona_start_ze_spisem_rzeczy_strony; local strona_start_inne=stronicowyparser_obiekty_modul.strona_start_inne; local szablony_strony_zbiorczej=stronicowyparser_obiekty_modul.strona_zbiorcza; ---- local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe; local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe; local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu; local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego; ---- local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local tabela_elementow_strony_kodow={}; for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod in iterator do local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,nazwa_szablonu_wywolania,modyfikatory_wywolania,uzyskano_w_wyniku_parsowania_wywolanie_szablonu) if(czy_artykul_korzystany)then if(tabela_parametrow_szablonu)then if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then if(strona_start[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"]; stronastart=true; local boczne_menu=tabela_parametrow_szablonu["boczne menu"] or ""; local spis_tresci=tabela_parametrow_szablonu["spis treści"] or "TOC"; if((parametry_modul.CzyTak(boczne_menu))or(parametry_modul.CzyTak(spis_tresci)))then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(strona_start_ze_spisem_rzeczy_strony[nazwa_szablonu_wywolania])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_start_inne[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak"; stronastart=true; return; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_prestreni_nazw))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then analiza_stron_korzystanych_zbiorczych=true; local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"]; local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"]; if((not parametry_modul.CzyTak(nazwa_przestrzeni))and(not parametry_modul.CzyTak(nazwa_jednostki)))then return; end; end; end; end; local plik=mw.ustring.match(nazwa_szablonu_wywolania,"^:"); if(plik==nil)then if(tabela_parametrow_szablonu)then if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then local czy_wypowiedzenie=(nazwa_szablonu_wywolania=="Wypowiedzenie"); local czy_linkobiekt; local czy_link;local czy_pobierz; local czy_wypowiedzenie_z_parametrami; local czy_linkobiekt_z_parametrami; if(czy_wypowiedzenie)then czy_linkobiekt=false; czy_link=false; czy_pobierz=false; czy_wypowiedzenie_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["rodzaj"]); else czy_linkobiekt=(nazwa_szablonu_wywolania=="LinkObiekt"); if(czy_linkobiekt)then czy_link=true; czy_pobierz=false; czy_linkobiekt_z_parametrami=parametry_modul.CzyTak(tabela_parametrow_szablonu["typ"]); else czy_link=mw.ustring.match(nazwa_szablonu_wywolania,"^Link"); czy_pobierz=(not czy_link) and mw.ustring.match(nazwa_szablonu_wywolania,"^Pobierz") or nil; end; end; if((not czy_link)and(not czy_pobierz))then local wartosc_elementu;local numer_uchwytu; if(not czy_wypowiedzenie_z_parametrami) then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; else local rodzaj=tabela_parametrow_szablonu["rodzaj"]; if(rodzaj)then wartosc_elementu=format_elementowy_obiektowy[rodzaj] and rodzaj or nil; if(wartosc_elementu)then numer_uchwytu=tablica_obiekty[5]; end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; elseif(czy_artykul_korzystany)then if(czy_link)then local wartosc_elementu; if(not czy_linkobiekt_z_parametrami)then wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_numerowane_obiekty[nazwa_szablonu_wywolania]; else local typ=tabela_parametrow_szablonu["typ"]; if(typ)then typ=format_elementowy_referencji_obiektowy[typ] and typ or nil; if(typ)then wartosc_elementu=mw.getContentLanguage():ucfirst(typ); end; end; end; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) 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="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_napisu_wprowadzenia_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) 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=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); 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; return; end; end; elseif(czy_pobierz)then local wartosc_elementu=szablony_linkowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; if(wartosc_elementu)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) 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=nazwa_szablonu_wywolania..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,wartosc_elementu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; end; end; end; if(czy_wypowiedzenie)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then 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="Obiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artykul_korzystany,tablica_obiekty[5],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_wprowadzenia_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_naglowka[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); p.UchwytyZeiBezNumeracji(self,tabela_elementow_strony_kodow,wartosc_elementu,lista_dwuelementowa,kod); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; end; return; elseif(stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_tekstu[nazwa_szablonu_wywolania])then local tab_wartosc_elementu=szablony_obiektowe_z_uchwytami_numerowane_i_nienumerowane_nienumerowane_obiekty_tekstu[nazwa_szablonu_wywolania]; local wartosc_elementu;local numer_uchwytu; if(tab_wartosc_elementu)then wartosc_elementu=tab_wartosc_elementu[1]; numer_uchwytu=tab_wartosc_elementu[2]; end; local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) if(czy_artykul_korzystany)then if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then if(uchwyt_obiektu and (uchwyt_obiektu~=""))then self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; end; end; local lista_dwuelementowa=p.RozpatrywanieSzablonuObiektuDoNumeracji(self,tabela_parametrow_szablonu,tablica_zmiennych, nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artykul_korzystany,numer_uchwytu--[[elementy_w_tablicy_obiekty[5]],nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); if(lista_dwuelementowa)then local tekst=tabela_parametrow_szablonu["tekst"] or tabela_parametrow_szablonu["treść"] or tabela_parametrow_szablonu[1]; if(tekst)then local czy_szablon_wszystko=false; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if( (tab_szablony[nazwa_szablonu]) or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu]) or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu]) or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu]) )then if(not czy_artykul_korzystany)then tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni; tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "")) if(self)then local czy_link_lub_pobierz=mw.ustring.match(nazwa_szablonu,"^Link") or mw.ustring.match(nazwa_szablonu,"^Pobierz"); if(czy_link_lub_pobierz)then p.ZbieranieKontenerowychInformacjiReferencji(self,tabela_parametrow_szablonu,nazwa_modulu_aktualna_czy_biezaca); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu); end; end; end; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end; return nil; end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- instrukcje warunkowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- wywołania ramek Lua w Scribunto return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) ---- tagi szablonowe; return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true); end); czy_szablon_wszystko=czy_szablon_wszystko or true; if(wynik)then return wynik;end; elseif(obiekt=="ZMIENNA")then czy_szablon_wszystko=czy_szablon_wszystko or true; local zawartosc=mw.ustring.match(szablon,"^{{{(.*)}}}$"); if(zawartosc)then zawartosc=mw.ustring.gsub(zawartosc,"|","{{!}}"); return "{{(((}}"..zawartosc.."{{)))}}"; end; end; end); if(czy_szablon_wszystko)then local frame=mw.getCurrentFrame(); tekst=frame:preprocess(tekst); end; lista_dwuelementowa[2]=tekst; end; end; return; elseif(czy_artykul_korzystany)then if(czy_linkobiekt)then local function KtorySzablonMaZwracacKategorie(uchwyt_obiektu,__FUNKCJA) 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="LinkObiekt:"..((uchwyt_obiektu)and uchwyt_obiektu or ""); end; end; p.GeneralneLinkowanie(self,tablica_zmiennych,tabela_parametrow_szablonu,"Obiekt",nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,KtorySzablonMaZwracacKategorie); return; else if(stronicowyparser_obiekty_modul.szablony_z_lokalnym_spisem_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true; return; elseif(stronicowyparser_obiekty_modul.bez_uchwytow_spis_rzeczy_strony[nazwa_szablonu_wywolania])then self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true; self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil; local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) 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=nazwa_szablonu_wywolania..":"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "") end; end; p.ZbieranieInformacjiStronyWoluminowychPozycji(self,tabela_parametrow_szablonu,KtorySzablonMaZwracacKategorie); 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; return; else local function KtorySzablonMaZwracacKategorie(uchwyt,__FUNKCJA) 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=nazwa_szablonu_wywolania..":"..nazwa_symulacyjnej_strony; self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt; end; end; if((stronicowyparser_obiekty_modul.szablony_kontenerowe[nazwa_szablonu_wywolania]) or(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]) )then if(szablony_wykorzystywane_przez_strony_zbiorcze[nazwa_szablonu_wywolania])then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); else p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,nil,KtorySzablonMaZwracacKategorie); end; return; elseif((strona_zbiorcza)and(szablony_strony_zbiorczej[nazwa_szablonu_wywolania]))then p.ZbieranieKontenerowychInformacji(self,tabela_parametrow_szablonu,true,KtorySzablonMaZwracacKategorie); return; end; end; end; end; end; end; end; end; stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,obiekt,kod,nazwa_modulu_aktualna_czy_biezaca,tablica_danych_parametrow_szablonu_strony,AnalizaParametrowSzablonuISzablonu); end; local tablica_danych_nazwy_artykulu=tablica_ksiazki.lista_podstron_woluminu[nazwa_artykulu] or {}; tablica_danych_nazwy_artykulu.uchwyty_i_numeracje=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; if(czy_artykul_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,tablica_ksiazki.spis,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); end; end; local strona; if(czy_artykul_korzystany)then strona="";else strona=nazwa_modulu;end; local toc; if(((czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)) or((not czy_artykul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)))then ---- local tablica_obiektow_strony_danych_kodow_specjalnych_modul=nil; ---- tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul=szablonowe_modul:KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,false); ---- local function KtorySzablonMaZwracacKategorieNaglowek(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"powtórka nagłowek w stronie korzystanej"); 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=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"powtórka nagłówek w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,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=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function KtorySzablonMaZwracacKategorieTekst(numeracja_aktualna,nazwa_szablonu) if(czy_artykul_korzystany)then if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"))then stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); 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=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; else stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"nagłowek w tekście rozdziału w stronie dołączonej",nil,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,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=nazwa_szablonu..":"..(numeracja_aktualna or ""); end; end; end; local function CzyJestTakiProblemJakoElementTablicy() return stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nagłówek w tekście rozdziału w stronie korzystanej"); end; local nazwa_naglowka=stronicowyparser_obiekty_modul.nazwa_szablonu_wprowadzenia_tekstu; local stronicowyparser_glownafunkcjazbieraniadanych_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron"); local tablica_naglowka_obiekty=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_naglowka]; tablica_naglowka_obiekty.uchwyty_bez_numeracji={}; local toc=stronicowyparser_glownafunkcjazbieraniadanych_modul.SpisRzeczyWedlePodanegoTekstu(self,tekst_rozwiniety_calego_artykulu,strona, czy_artykul_korzystany,nil,tablica_naglowka_obiekty.uchwyty_bez_numeracji, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki, nazwa_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tablica_obiektow_strony_danych_kodow_specjalnych_modul,{KtorySzablonMaZwracacKategorieNaglowek,KtorySzablonMaZwracacKategorieTekst,CzyJestTakiProblemJakoElementTablicy},nil,tabela_elementow_strony_kodow); tablica_danych_nazwy_artykulu.TOC=toc; end; StronaSubstFunkcja(tablica_danych_nazwy_artykulu,tablica_ksiazki.spis,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu); if(czy_artykul_korzystany)then self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu=tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]; self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_przestrzeni_nazw[nazwa_przestrzeni_ksiazki]; self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.tablica_ksiazek_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki]; end; return self.tabela_listy_danych_analizy_ksiazki; end; return p; n7ry15nq025wx3zlecztluv9uhkbbj9 Szablon:Wersja do czytania 10 58153 544766 543328 2026-05-31T19:15:53Z Persino 2851 544766 wikitext text/x-wiki <templatestyles src="Szablon:Wersja do druku/styles.css" />{{Div|klasa=noprint szablon_wersji_linków_do_stron wersja_do_czytania| {{Div|{{Div|{{Plik|plik=Book template.svg|rozmiar=50px|opis=Wikibooks|rys=tak}}}}}} {{Div|{{Div|Jest dostępny podręcznik w formie biblii: {{lo|{{PEŁNANAZWAKSIĄŻKI|{{{1|{{FULLPAGENAME}}}}}}}/{{SUBNAZWAKSIĄŻKI|{{{1|{{FULLPAGENAME}}}}}}}|{{SUBNAZWAKSIĄŻKI|{{{1|{{FULLPAGENAME}}}}}}}}} {{Small|({{Span|klasa=plainlinks|{{LinkURL|strona={{PEŁNANAZWAKSIĄŻKI|{{{1|{{FULLPAGENAME}}}}}}}/{{SUBNAZWAKSIĄŻKI|{{{1|{{FULLPAGENAME}}}}}}}|parametry=action=edit|nazwa=edycja}}}})}}, w wersji do czytania.}}}}}}<noinclude>{{Dokumentacja}}</noinclude> mdvksmzj3jrx2kqtoebahnc7198kk6w Moduł:Szablonowe 828 58954 544804 544589 2026-06-01T00:25:01Z Persino 2851 544804 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania.."\n","^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then tworzona_tabela[#tworzona_tabela+1]=((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or 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; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane) 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,trimuj_numerowane); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane); end; return nil; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); local tabela_parametrow_szablonu={}; tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local tabela_parametrow_szablonu={}; ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; t47sjnskxqmqk5nhm5ch4rqpt6ol7xi 544805 544804 2026-06-01T00:37:49Z Persino 2851 544805 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania.."\n","^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then tworzona_tabela[#tworzona_tabela+1]=((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or 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; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane) 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,trimuj_numerowane); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane); end; return nil; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); local tabela_parametrow_szablonu={}; tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local tabela_parametrow_szablonu={}; ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; 42dd26uz7mnuqj291e9nr2qs40vnl58 544808 544805 2026-06-01T08:18:32Z Persino 2851 544808 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania.."\n","^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then ---- local __metatabelka=getmetatable(tworzona_tabela); local len=__metatabelka.__len(tworzona_tabela) ---- tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,}; 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; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane) 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,trimuj_numerowane); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane); end; return nil; end; p.__MetaFunkcja=function(__metatablica) local parametry_modul=require("Module:Parametry"); local i=1; local tablica={}; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab[1]; end; __metatablica.__newindex=function(t,klucz,wartosc) if(wartosc~=nil)then if(parametry_modul.TypeTable(wartosc))then tablica[klucz]={wartosc[1],i,wartosc[2],}; else tablica[klucz]={wartosc,i,}; end; i=i+1; else tablica[klucz]=nil; end; end; __metatablica.__pairs=function(t) local tablica2={}; for name, value in pairs(tablica)do tablica2[name]=value[1]; end; return next,tablica2,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v[1]; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); ---- local __metatabelka={}; p.__MetaFunkcja(__metatabelka); local tabela_parametrow_szablonu={}; mw.log(nazwa_szablonu) setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); ---- local __metatabelka={}; p.__MetaFunkcja(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; 6qzmov3aei7zthim22c937ab8famtvn 544809 544808 2026-06-01T08:31:15Z Persino 2851 544809 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania.."\n","^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then ---- local __metatabelka=getmetatable(tworzona_tabela); local len=__metatabelka.__len(tworzona_tabela) ---- tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,}; 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; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane) 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,trimuj_numerowane); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane); end; return nil; end; p.__MetaFunkcja=function(__metatablica) local parametry_modul=require("Module:Parametry"); local i=1; local tablica={}; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab[1]; end; __metatablica.index=function(t,klucz) return tablica[klucz]; end; __metatablica.__newindex=function(t,klucz,wartosc) if(wartosc~=nil)then if(parametry_modul.TypeTable(wartosc))then tablica[klucz]={wartosc[1],i,wartosc[2],}; else tablica[klucz]={wartosc,i,}; end; i=i+1; else tablica[klucz]=nil; end; end; __metatablica.newindex=function(t,klucz,wartosc) tablica[klucz]=wartosc; end; __metatablica.__pairs=function(t) local tablica2={}; for name, value in pairs(tablica)do tablica2[name]=value[1]; end; return next,tablica2,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v[1]; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); ---- local __metatabelka={}; p.__MetaFunkcja(__metatabelka); local tabela_parametrow_szablonu={}; mw.log(nazwa_szablonu) setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); ---- local __metatabelka={}; p.__MetaFunkcja(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; p8aqv0i7404n2mg2xpm4fb2w4c51xua 544810 544809 2026-06-01T08:42:39Z Persino 2851 544810 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania.."\n","^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then ---- local __metatabelka=getmetatable(tworzona_tabela); local len=__metatabelka.__len(tworzona_tabela) ---- tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,}; 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; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane) 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,trimuj_numerowane); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane); end; return nil; end; p.__MetaFunkcjaParsowanieSzablonu=function(__metatablica) local parametry_modul=require("Module:Parametry"); local i=1; local tablica={}; __metatablica.PobierzGeneralnaTablica=function(t) return tablica; end; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab[1]; end; __metatablica.index=function(t,klucz) return tablica[klucz]; end; __metatablica.__newindex=function(t,klucz,wartosc) if(wartosc~=nil)then if(parametry_modul.TypeTable(wartosc))then tablica[klucz]={wartosc[1],i,wartosc[2],}; else tablica[klucz]={wartosc,i,}; end; i=i+1; else tablica[klucz]=nil; end; end; __metatablica.newindex=function(t,klucz,wartosc) tablica[klucz]=wartosc; end; __metatablica.__pairs=function(t) local tablica2={}; for name, value in pairs(tablica)do tablica2[name]=value[1]; end; return next,tablica2,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v[1]; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; mw.log(nazwa_szablonu) setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; 0l5zxts6u9biumeluu0w46zik4pxdok 544811 544810 2026-06-01T08:54:43Z Persino 2851 544811 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania.."\n","^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then ---- local __metatabelka=getmetatable(tworzona_tabela); local len=__metatabelka.__len(tworzona_tabela) ---- tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,}; 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; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane) 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,trimuj_numerowane); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane); end; return nil; end; p.__MetaFunkcjaParsowanieSzablonu=function(__metatablica) local parametry_modul=require("Module:Parametry"); local i=1; local tablica={}; __metatablica.PobierzGeneralnaTablica=function(t) return tablica; end; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab[1]; end; __metatablica.index=function(t,klucz) return tablica[klucz]; end; __metatablica.__newindex=function(t,klucz,wartosc) if(wartosc~=nil)then if(parametry_modul.TypeTable(wartosc))then tablica[klucz]={wartosc[1],i,wartosc[2],}; else tablica[klucz]={wartosc,i,}; end; i=i+1; else tablica[klucz]=nil; end; end; __metatablica.newindex=function(t,klucz,wartosc) tablica[klucz]=wartosc; end; __metatablica.__pairs=function(t) local tablica2={}; for name, value in pairs(tablica)do tablica2[name]=value[1]; end; return next,tablica2,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v[1]; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; qvpxku88c5k01u7g86pv454drwezuae 544814 544811 2026-06-01T09:36:09Z Persino 2851 544814 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania.."\n","^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then ---- local __metatabelka=getmetatable(tworzona_tabela); local len=__metatabelka.__len(tworzona_tabela) ---- tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,}; 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; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane) 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,trimuj_numerowane); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane); end; return nil; end; p.__MetaFunkcjaParsowanieSzablonu=function(__metatablica) local parametry_modul=require("Module:Parametry"); local i=1; local tablica={}; __metatablica.PobierzGeneralnaTablica=function(t) return tablica; end; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab[1]; end; __metatablica.index=function(t,klucz) return tablica[klucz]; end; __metatablica.__newindex=function(t,klucz,wartosc) if(wartosc~=nil)then if(parametry_modul.TypeTable(wartosc))then tablica[klucz]={wartosc[1],i,wartosc[2],}; else tablica[klucz]={wartosc,i,}; end; i=i+1; else tablica[klucz]=nil; end; end; __metatablica.newindex=function(t,klucz,wartosc) tablica[klucz]=wartosc; end; __metatablica.__pairs=function(t) local tablica2={}; for name, value in pairs(tablica)do tablica2[name]=value[1]; end; return next,tablica2,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v[1]; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local __metatabelka=getmetatable(args); local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); if(not __metatabelka)then for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; else local tabelka_metatable=__metatabelka.PobierzGeneralnaTablica(args); local tab_inna_tabelka={}; for name,value in pairs(tabelka_metatable)do tab_inna_tabelka[value[2]]={name,value[1],value[3],};end; for _,value in ipairs(tab_inna_tabelka)do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,((not value[3])and(value[1]..((jako_szablony) and "{{=}}" or "=")) or "")..value[2]); end; end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; 9v0znjuzlwpb20yfxa9b4p8ne47xsx9 544815 544814 2026-06-01T10:20:45Z Persino 2851 544815 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane,czy_ramka_lua) local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then ---- if((not czy_ramka_lua)or(not czy_ramka_lua[1])or((czy_ramka_lua[1])and(czy_ramka_lua[2])))then local __metatabelka=getmetatable(tworzona_tabela); local len=__metatabelka.__len(tworzona_tabela) ---- tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,}; else local __metatabelka=getmetatable(tworzona_tabela); __metatabelka.newindex(true,kawalek_wywolania_element_nienazwany); czy_ramka_lua[2]=true; end; return tworzona_tabela; else ---- if((not czy_ramka_lua)or(not czy_ramka_lua[1])or((czy_ramka_lua[1])and(czy_ramka_lua[2])))then 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; else local __metatabelka=getmetatable(tworzona_tabela); __metatabelka.newindex(true,kawalek_wywolania); czy_ramka_lua[2]=true; return tworzona_tabela end; end; return nil; end; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane,czy_ramka_lua) 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,trimuj_numerowane,czy_ramka_lua); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane,czy_ramka_lua); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane,czy_ramka_lua); end; return nil; end; p.__MetaFunkcjaParsowanieSzablonu=function(__metatablica) local parametry_modul=require("Module:Parametry"); local i=1; local tablica={}; __metatablica.PobierzGeneralnaTablica=function(t) return tablica; end; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab[1]; end; __metatablica.index=function(t,klucz) return tablica[klucz]; end; __metatablica.__newindex=function(t,klucz,wartosc) if(wartosc~=nil)then if(parametry_modul.TypeTable(wartosc))then tablica[klucz]={wartosc[1],i,wartosc[2],}; else tablica[klucz]={wartosc,i,}; end; i=i+1; else tablica[klucz]=nil; end; end; __metatablica.newindex=function(t,klucz,wartosc) tablica[klucz]=wartosc; end; __metatablica.__pairs=function(t) local tablica2={}; for name, value in pairs(tablica)do tablica2[name]=value[1]; end; return next,tablica2,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v[1]; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- local czy_ramka_lua={tabela_modyfikatorow and tabela_modyfikatorow["#invoke:"] or nil,false,}; ---- tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane,czy_ramka_lua); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local __metatabelka=getmetatable(args); local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); if(not __metatabelka)then for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; else local tabelka_metatable=__metatabelka.PobierzGeneralnaTablica(args); local tab_inna_tabelka={}; local funkcja; local juz_jest=nil; for name,value in pairs(tabelka_metatable)do if((juz_jest)or(name~=true))then tab_inna_tabelka[value[2]]={name,value[1],value[3],}; else funkcja=value; juz_jest=true; end; end; if(funkcja)then table.insert(result,((jako_szablony) and "{{!}}" or "|")); if(jako_szablony)then funkcja=mw.ustring.gsub(funkcja,"=",function(znak) return "{{=}}"; end); end; table.insert(result,funkcja); end; for _,value in ipairs(tab_inna_tabelka)do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,((not value[3])and(value[1]..((jako_szablony) and "{{=}}" or "=")) or "")..value[2]); end; end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; 65nx8ofiy85n9h413dpfmjyswb7ztmh 544816 544815 2026-06-01T10:27:56Z Persino 2851 544816 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane,czy_ramka_lua) if((not czy_ramka_lua)or(not czy_ramka_lua[1])or((czy_ramka_lua[1])and(czy_ramka_lua[2])))then local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then ---- local __metatabelka=getmetatable(tworzona_tabela); local len=__metatabelka.__len(tworzona_tabela) ---- tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,}; return tworzona_tabela; else ---- if((not czy_ramka_lua)or(not czy_ramka_lua[1])or((czy_ramka_lua[1])and(czy_ramka_lua[2])))then 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; end; else local __metatabelka=getmetatable(tworzona_tabela); __metatabelka.newindex(true,kawalek_wywolania); czy_ramka_lua[2]=true; return tworzona_tabela; end; return nil; end; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane,czy_ramka_lua) 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,trimuj_numerowane,czy_ramka_lua); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane,czy_ramka_lua); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane,czy_ramka_lua); end; return nil; end; p.__MetaFunkcjaParsowanieSzablonu=function(__metatablica) local parametry_modul=require("Module:Parametry"); local i=1; local tablica={}; __metatablica.PobierzGeneralnaTablica=function(t) return tablica; end; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab[1]; end; __metatablica.index=function(t,klucz) return tablica[klucz]; end; __metatablica.__newindex=function(t,klucz,wartosc) if(wartosc~=nil)then if(parametry_modul.TypeTable(wartosc))then tablica[klucz]={wartosc[1],i,wartosc[2],}; else tablica[klucz]={wartosc,i,}; end; i=i+1; else tablica[klucz]=nil; end; end; __metatablica.newindex=function(t,klucz,wartosc) tablica[klucz]=wartosc; end; __metatablica.__pairs=function(t) local tablica2={}; for name, value in pairs(tablica)do tablica2[name]=value[1]; end; return next,tablica2,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v[1]; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- local czy_ramka_lua={tabela_modyfikatorow and tabela_modyfikatorow["#invoke:"] or nil,false,}; ---- tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane,czy_ramka_lua); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local __metatabelka=getmetatable(args); local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); if(not __metatabelka)then for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; else local tabelka_metatable=__metatabelka.PobierzGeneralnaTablica(args); local tab_inna_tabelka={}; local funkcja; local juz_jest=nil; for name,value in pairs(tabelka_metatable)do if((juz_jest)or(name~=true))then tab_inna_tabelka[value[2]]={name,value[1],value[3],}; else funkcja=value; juz_jest=true; end; end; if(funkcja)then table.insert(result,((jako_szablony) and "{{!}}" or "|")); if(jako_szablony)then funkcja=mw.ustring.gsub(funkcja,"=",function(znak) return "{{=}}"; end); end; table.insert(result,funkcja); end; for _,value in ipairs(tab_inna_tabelka)do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,((not value[3])and(value[1]..((jako_szablony) and "{{=}}" or "=")) or "")..value[2]); end; end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; q86xofudzjfaempaw5575dt58y38089 544817 544816 2026-06-01T10:31:46Z Persino 2851 544817 Scribunto text/plain local p={}; --zamykanie local znak_127=mw.loadData("Module:Html/dane").znak_127; function p.NormaWzoruKodowaniaTekstu(co,numer_szablonu) local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`\"'"..znak_127; return wzor; end; function p.NormaKoduKodowaniaTekstu(kod,numer) local wikikodnumer=znak_127.."'\"`UNIQ--"..kod.."-"..numer.."-QINU`\"'"..znak_127; return wikikodnumer; end; function p.NormaWzoruKodowaniaEncodeWikiTekstu(co,numer_szablonu) local wzor=znak_127.."&#0*39;&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;&#0*39;"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoEncodeWikiTekstu(kod,numer) local wzor=znak_127.."&#039;&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;&#039;"..znak_127; return wzor; end; function p.NormaWzoruZakodowanegoWikiTekstu(co,numer_szablonu) local wzor=znak_127.."'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'"..znak_127; return wzor; end; function p.NormaKoduZakodowanegoWikiTekstu(kod,numer) local wikikodnumer=znak_127.."'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'"..znak_127; return wikikodnumer; end; function p.NormaWzoruZakodowanegoHtmlTekstu(co,numer_szablonu) local wzor="%%7F'&quot;`UNIQ%-%-"..(co or "([%a%d]+)").."%-"..(numer_szablonu or "(%d+)").."%-QINU`&quot;'%%7F"; return wzor; end; function p.NormaKoduZakodowanegoHtmlTekstu(kod,numer) local wikikodnumer="%7F'&quot;`UNIQ--"..kod.."-"..numer.."-QINU`&quot;'%7F"; return wikikodnumer; end; function p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY) local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); return szablonowe_potrzebne_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_poczatek,__FUNKCJA_koniec,__FUNCTION_niedokonczone,__FUNCTION_INCLUDE,__FUNKCJA_PARAMETRY); end; function p.KodujWzoryMatematyczneTekstu(self,tekst_artykulu) local licznik=0; local tablica_analizy_obiektow_strony_dany_modul={}; tablica_analizy_obiektow_strony_dany_modul["MATH"]={}; tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>)",function(szablon) licznik=licznik+1; tablica_analizy_obiektow_strony_dany_modul["MATH"][licznik]=szablon; return p.NormaKoduKodowaniaTekstu("MATH",licznik); end) return tekst_artykulu,tablica_analizy_obiektow_strony_dany_modul; end; function p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local parametry_modul=require("Module:Parametry"); local function NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt) local __max=0; for numer,_ in pairs(tablica_analizy_obiektow_strony_dany_modul[obiekt])do if(parametry_modul.TypeNumber(numer))then __max=math.max(__max,numer); end; end; return __max+1; end; local numer_szablonu={}; local szablonowe_dane_modul=require("Module:Szablonowe/dane"); for obiekt,_ in pairs(szablonowe_dane_modul.tablica_podstawowe_elementy_szablonowe_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; for obiekt,_ in pairs(szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki)do numer_szablonu[obiekt]=NumerSzablonuObiektu(tablica_analizy_obiektow_strony_dany_modul,obiekt); end; return numer_szablonu; end; function p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu() local stronicowyparser_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji=stronicowyparser_dane_modul.tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; return tablica_parametrowa_kodowa_szablonowa_stosowanych_funkcji; end; function p.UsuwanieStarychZebranychInformacjiBazyTablicyKodowaniaWikikodu(tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_usun) local tab_analiza=p.LiczbyParametroweInformacjiBazyKodowaniaWikikodu(); for obiekt,tab_obiekt in pairs(tablica_analizy_obiektow_strony_dany_modul)do for kod,wartosc in pairs(tab_obiekt)do local tablica=getmetatable(tablica_analizy_obiektow_strony_dany_modul[obiekt]).tablica(); local tab_wartosc=tablica[kod]; if(tab_wartosc)then if((not tab_usun[obiekt])or(not tab_usun[obiekt][kod]))then if(tab_wartosc[2])then for obiekt_tab,tab_kod in pairs(tab_analiza)do if(obiekt_tab==obiekt)then for _,liczba in ipairs(tab_kod)do local tab_liczba=tablica_danych_parametrow_szablonu_strony[liczba]; if(tab_liczba)then tab_liczba[kod]=nil; tab_wartosc[2]=false; end; end; end; end; end; else tablica[kod]=nil; end; end; end; end; end; function p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4) if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu];end; local czy_jedno=false; ---- local parametry_modul=require("Module:Parametry"); ---- local function IteratorMain(tekst_rozwiniety_calego_artykulu,poziom_iteracji,obiekt,kod,czy_stare) local iter=true;local iter_fun; if((tekst_rozwiniety_calego_artykulu=="")or(czy_stare))then iter_fun=function() local iter=function() return nil; end; return iter; end; else iter_fun=function() if((not obiekt)and(not kod))then local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu()); return iter; else local wynik=__FUNKCJA4 and __FUNKCJA4(tekst_rozwiniety_calego_artykulu,obiekt,kod,poziom_iteracji) or nil; local szablon=wynik or (((obiekt)and(kod)) and (tablica_analizy_obiektow_strony_dany_modul[obiekt]))and tablica_analizy_obiektow_strony_dany_modul[obiekt][kod] or tekst_rozwiniety_calego_artykulu; if((not szablon)or(szablon==""))then local iter=function() return nil; end; return iter; else local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); return iter; end; end; end; end; local tak=nil; local iter2=nil; poziom_iteracji=poziom_iteracji or 0; local function Iterator() local function IterMain() local obiekt,kod; ---- repeat if((parametry_modul.TypeBoolean(iter))and(iter==true))then iter=iter_fun();end; obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; szablon=(not __FUNKCJA3) and szablon or (__FUNKCJA3(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) or szablon); if(__FUNKCJA2)then repeat local czy_dalej=nil; local jest_naglowek=__FUNKCJA2(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); if(not jest_naglowek)then --if(poziom_iteracji>0)then -- return nil; --else repeat obiekt,kod=iter(); if((not obiekt)or(not kod))then return nil;end; kod=tonumber(kod); local tak_repeat=false; if((not tablica_analizy_obiektow_strony_dany_modul[obiekt])or(not tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]))then tak_repeat=true; end; until (not tak_repeat); ---- szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_dalej=true; --end; end; until (not czy_dalej); end; ---- tak=true; if(__FUNKCJA)then local wynik,tekst=__FUNKCJA(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu); if(not wynik)then czy_jedno=true; return nil; else szablon=wynik; if(tekst)then tekst_rozwiniety_calego_artykulu=tekst; end; end; end; iter2=IteratorMain(szablon,poziom_iteracji+1,obiekt,kod,(obiekt=="STARE")); return szablon,obiekt,kod,poziom_iteracji; end; if(not tak)then local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else local szablon,obiekt,kod,poziom_iteracji=iter2(); if(czy_jedno)then return nil;end; if((not szablon)or(not kod)or(not obiekt))then tak=nil; local szablon,obiekt,kod,poziom_iteracji=IterMain(); if(czy_jedno)then return nil;end; return szablon,obiekt,kod,poziom_iteracji; else return szablon,obiekt,kod,poziom_iteracji; end; end; end; return Iterator; end; return IteratorMain(tekst_rozwiniety_calego_artykulu,0,nil,nil,false),tablica_analizy_obiektow_strony_dany_modul; end; function p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6,__funkcja7,__funkcja8,__funkcja9,__funkcja10) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local tab_usun={}; local szablon2=nil; local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja3,__funkcja4,__funkcja5,function(tekst_szablon,obiekt,kod,poziom_iteracji) local __SZABLON=function(obiekt,kod)return tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];end; local tak=((not szablon2)or(not tab_usun)or(not tab_usun[obiekt])or(not tab_usun[obiekt][kod])); local szablon=__funkcja6 and __funkcja6(tekst_szablon,obiekt,kod,poziom_iteracji,tak,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or (tak and __SZABLON(obiekt,kod) or szablon2); return szablon; end); local poziom_iteracji_poprz=-1; local tab_dane=nil; for szablon,obiekt,kod,poziom_iteracji in iterator do if((tab_dane)and(poziom_iteracji==0))then tab_dane=nil;end; szablon2=nil;local wynik; if(__funkcja1)then local analiza; szablon2,wynik,analiza=__funkcja1(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if((analiza)and(__funkcja7))then local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; ---- local funkcja_temp;local tak_specjalne=false; if(tab_dane)then ---- local tak=true; local szablon_temp;local obiekt_temp;local kod_temp;local poziom_iteracji_temp; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then szablon_temp=tab_pos[1];obiekt_temp=tab_pos[2];kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and(tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp])); if(not tak)then local Typ=function() return __funkcja7(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; if(not funkcja_temp)then funkcja_temp=Typ;end; local czy_funkcja_jako_funkcja8=parametry_modul.TypeFunction(__funkcja8); if(czy_funkcja_jako_funkcja8 and __funkcja8(szablon_temp,obiekt_temp,kod_temp,poziom_iteracji_temp,szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) )then tak_specjalne=true; end; break; end; end; end; end; if(tak_specjalne)then wynik=true;end; if(funkcja_temp)then funkcja_temp();end; else local czy_szablon_funkcyjny=parametry_modul.TypeFunction(szablon2); if(czy_szablon_funkcyjny)then szablon2=szablon2();end; end; end; if(not wynik)then szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon2 or szablon); if((not tab_dane)or(#tab_dane==0))then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local tak=true;local tab_wolne; for i=#tab_dane,1,-1 do local tab_pos=tab_dane[i]; local poziom_iteracji_temp=tab_pos[4]; if(poziom_iteracji_temp<poziom_iteracji)then local obiekt_temp=tab_pos[2];local kod_temp=tab_pos[3]; tak=tak and ((obiekt_temp and kod_temp)and((tab_usun[obiekt_temp]) and (tab_usun[obiekt_temp][kod_temp]))); if(not tak)then tab_wolne=tab_pos; break; end; end; end; if(tak)then tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; else local obiekt_temp=tab_wolne[2];local kod_temp=tab_wolne[3]; local tekst=tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]; tekst=mw.ustring.gsub(tekst,p.NormaWzoruKodowaniaTekstu(obiekt,kod),szablon); tablica_analizy_obiektow_strony_dany_modul[obiekt_temp][kod_temp]=tekst; if(not tab_usun[obiekt])then tab_usun[obiekt]={};end;tab_usun[obiekt][kod]=true; end; end; -- parametry kodow local czy_usun_kod=__funkcja10 and __funkcja10(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; -- bazowanie kodow local tak=__funkcja9 and __funkcja9(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tab_usun) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; -- funkcje koncowe local tak=__funkcja2 and __funkcja2(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) or nil; if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; if(not tab_dane)then tab_dane={};end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_dane); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_dane); end; table.insert(tab_dane,{szablon,obiekt,kod,poziom_iteracji}); if(__funkcja2)then local tak=__funkcja2(szablon2 or szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); if(tak)then return tekst_rozwiniety_calego_artykulu,tab_usun;end; end; poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.ModyfikowanieKodowoSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja,__funkcja2,__funkcja3,__funkcja4,__funkcja5,__funkcja6) local techniczne_modul=require("Module:Techniczne"); local parametry_modul=require("Module:Parametry"); local iterator,tablica_analizy_obiektow_strony_dany_modul=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja2,__funkcja3,__funkcja4,__funkcja5); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={}; for szablon,obiekt,kod,poziom_iteracji in iterator do local function ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica) local kod_kodowy_wynik,dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany,szablon_rodzica_zmodyfikowany=__funkcja(szablon,obiekt,kod,poziom_iteracji,szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica,tablica_analizy_obiektow_strony_dany_modul); if(kod_kodowy_wynik)then local function ModyfikacjaBazyKodowoSzablonowa() if(dziecko_zmodyfikowane)then if((obiekt_zmodyfikowany)and(kod_zmodyfikowany))then if((obiekt_zmodyfikowany~=obiekt)or(kod_zmodyfikowany~=kod))then if(not tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany])then tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany]={}; end; tablica_analizy_obiektow_strony_dany_modul[obiekt_zmodyfikowany][kod_zmodyfikowany]=dziecko_zmodyfikowane; local fun1=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt_zmodyfikowany,kod_zmodyfikowany) or nil; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil; local fun2=__funkcja6 and __funkcja6(nil,obiekt,kod) or nil; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun3=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=dziecko_zmodyfikowane; local fun4=__funkcja6 and __funkcja6(dziecko_zmodyfikowane,obiekt,kod) or nil; end; end; end; if(poziom_iteracji>0)then if(not szablon_rodzica_zmodyfikowany)then if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; local szablon_rodzica=tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]; szablon_rodzica,ile=mw.ustring.gsub(szablon_rodzica,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica; local fun5=__funkcja6 and __funkcja6(szablon_rodzica,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; end; else tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun6=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; ModyfikacjaBazyKodowoSzablonowa(); end; else if(not parametry_modul.TypeBoolean(kod_kodowy_wynik))then local ile; tekst_rozwiniety_calego_artykulu,ile=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.NormaWzoruKodowaniaTekstu(obiekt,kod),techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](kod_kodowy_wynik)); if(ile>0)then ModyfikacjaBazyKodowoSzablonowa(); end; end; end; elseif(szablon_rodzica_zmodyfikowany)then tablica_analizy_obiektow_strony_dany_modul[obiekt_rodzica][kod_rodzica]=szablon_rodzica_zmodyfikowany; local fun7=__funkcja6 and __funkcja6(szablon_rodzica_zmodyfikowany,obiekt_rodzica,kod_rodzica) or nil; end; end; if(poziom_iteracji==0)then ZamienianieKodowe(nil,nil,nil,nil); else for i=#tab_poziom_obiekt,1,-1 do local tab=tab_poziom_obiekt[i]; local poziom_iteracji_rodzica=tab[4]; if(poziom_iteracji_rodzica<poziom_iteracji)then local szablon_rodzica=tab[1]; local obiekt_rodzica=tab[2]; local kod_rodzica=tab[3]; ZamienianieKodowe(szablon_rodzica,obiekt_rodzica,kod_rodzica,poziom_iteracji_rodzica); break; end; end; end; if(poziom_iteracji_poprz>poziom_iteracji)then for i=poziom_iteracji_poprz,poziom_iteracji,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji)then elseif(poziom_iteracji_poprz==poziom_iteracji)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{szablon,obiekt,kod,poziom_iteracji,}); poziom_iteracji_poprz=poziom_iteracji; end; return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3,__funkcja4,__funkcja5) local tablica_szablonow_z_naglowkami=nil; local tab_sam; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(poziom_iteracji==0)then tablica_szablonow_z_naglowkami=nil; tab_sam=nil; else if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; end; ---- local wynik,sam_obiekt,sam_kod=__funkcja(szablon,obiekt,kod,0,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(wynik)then if(sam_obiekt and sam_kod)then return false; end; end local czy_nie_wyzej_sam=false; local czy_nie_wyzej_poziom=nil; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,function(szablon,obiekt,kod) if((czy_nie_wyzej_sam)or(czy_nie_wyzej_poziom))then return ""; end; end); local poziom_iteracji_poprz=-1; local tab_poziom_obiekt={} if(poziom_iteracji==0)then table.insert(tab_poziom_obiekt,{obiekt,kod});end; for szablon2,obiekt2,kod2,poziom_iteracji2 in iterator do local wynik,sam_obiekt,sam_kod,czy_inne_ustawienia=__funkcja(szablon2,obiekt2,kod2,poziom_iteracji2+1,false,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then if(poziom_iteracji_poprz>poziom_iteracji2)then for i=poziom_iteracji_poprz,poziom_iteracji2,-1 do table.remove(tab_poziom_obiekt); end; --elseif(poziom_iteracji_poprz<poziom_iteracji2)then elseif(poziom_iteracji_poprz==poziom_iteracji2)then table.remove(tab_poziom_obiekt); end; table.insert(tab_poziom_obiekt,{obiekt2,kod2}); poziom_iteracji_poprz=poziom_iteracji2; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else for _,tab in ipairs(tab_poziom_obiekt)do if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[tab[1]])then tablica_szablonow_z_naglowkami[tab[1]]={};end; tablica_szablonow_z_naglowkami[tab[1]][tab[2]]=true; end; if(sam_obiekt and sam_kod)then if(not tab_sam)then tab_sam={};end; if(not tab_sam[sam_obiekt])then tab_sam[sam_obiekt]={};end; tab_sam[sam_obiekt][sam_kod]=true; czy_nie_wyzej_sam=true; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=false; end; else if(not tablica_szablonow_z_naglowkami)then tablica_szablonow_z_naglowkami={};end; if(not tablica_szablonow_z_naglowkami[obiekt2])then tablica_szablonow_z_naglowkami[obiekt2]={};end; tablica_szablonow_z_naglowkami[obiekt2][kod2]=true; czy_nie_wyzej_sam=false; if(czy_inne_ustawienia)then czy_nie_wyzej_poziom=true; end; end; ---poziom_iteracji_poprz=poziom_iteracji2; end; end; if(wynik)then return true;end; if((tab_sam)and(tab_sam[obiekt])and(tab_sam[obiekt][kod]))then return false;end; if((tablica_szablonow_z_naglowkami)and(tablica_szablonow_z_naglowkami[obiekt])and(tablica_szablonow_z_naglowkami[obiekt][kod]))then return true;end; return nil; end,__funkcja4,__funkcja5); return tekst_rozwiniety_calego_artykulu; end; function p.KompletowanieSzablonoweZakodowanegoTekstuBezPewnychSzablonowychNormZgodnieZJegoSzablonowymiElementami(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__funkcja,__funkcja1,__funkcja2,__funkcja3) local tablica_szablonow_z_naglowkami=nil; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,__funkcja1,__funkcja2,__funkcja3,function(szablon,obiekt,kod,poziom_iteracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) local wynik=__funkcja(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not wynik)then return nil;end; return true; end); return tekst_rozwiniety_calego_artykulu; end; local function FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,czy_niekodowane,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,(dwukropek and ":" or "")..nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((not tabela_parametrow_szablonu)or(not nazwa_szablonu))then return;end; if(__FUNKCJA)then local wynik=__FUNKCJA(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return;end; end; local pelna_nazwa_szablonu=p["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA2)then local wynik=__FUNKCJA2(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return; end; end; if((czy_niekodowane)and(__FUNKCJA3))then local wynik=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(wynik)then return wynik; end; end; local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); local tekst; if((not czy_niekodowane)and(__FUNKCJA3))then tekst=__FUNKCJA3(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow); if(not tekst)then local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; else local techniczne_modul=require("Module:Techniczne"); local pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu; local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst"); tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true,true,nil,nil,nil,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end; if(not tekst)then return;end; if((czy_niekodowane)and(not czy_nie_brak_parametrow))then return tekst;end; local html_modul=require("Module:Html"); tekst=p:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,pelna_nazwa_szablonu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst) if(czy_nie_brak_parametrow)then if(obiekt=="ZMIENNA")then local zmienna;local wartosc_domyslna; zmienna=mw.ustring.match(szablon,"^{{{([^{}|]*)}}}$"); if(not zmienna)then zmienna,wartosc_domyslna=mw.ustring.match(szablon,"^{{{([^{}|]*)|([^{}]*)}}}$"); end; zmienna=mw.text.trim(zmienna); local wartosc_zmiennej=tabela_parametrow_szablonu[tonumber(zmienna) or zmienna]; if(not wartosc_zmiennej)then if(wartosc_domyslna)then return wartosc_domyslna;end; local szablon=html_modul["KodyHTMLZnakówWikiCiągu"](szablon); return szablon; end; return wartosc_zmiennej; end; end; end, function() return numer_szablonu; end,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu,tabela_modyfikatorow) return __PRZEDFUNKCJA(nazwa_szablonu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) end, function(nazwa_szablonu,tabela_modyfikatorow,rezultat) return __FUNKCJA0 and __FUNKCJA0(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu; end,false); end; end; function p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu) local tablica_modulu_szablonowe=p.TablicaTransportuSzablonowe(self); tablica_modulu_szablonowe.tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow or {}; local tablica_szablonow=tablica_modulu_szablonowe.tablica_szablonow; ---- tablica_szablonow[nazwa_modulu]=tablica_szablonow[nazwa_modulu] or {}; local tablica_danych_parametrow_szablonu_strony=tablica_szablonow[nazwa_modulu]; return tablica_danych_parametrow_szablonu_strony; end; function p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) if(not tablica_analizy_obiektow_strony_dany_modul)then if(not self.tablica_analizy_obiektow_strony_dany_modul)then self.tablica_analizy_obiektow_strony_dany_modul={};end; if(not self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca])then self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]={};end; --- tablica_analizy_obiektow_strony_dany_modul=self.tablica_analizy_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]; end; --- local tablica_danych_parametrow_szablonu_strony=tablica_danych_parametrow_szablonu_strony or p.TablicaZanalizowanychInformacjiSzablonowychParsowania(self,nazwa_modulu_aktualna_czy_biezaca); return tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony; end; function p.RozwijanieNiezakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tekst_rozwiniety_calego_artykulu=p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) return; end, function(szablon,obiekt,kod,tekst,tablica_analizy_obiektow_strony_dany_modul,numer_szablonu) ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; --- return FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,true,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); end,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY); return tekst_rozwiniety_calego_artykulu; end; function p.RozwijanieZakodowanegoSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY) local tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=p.UzyskiwanieTablicyKodowaniaIOpcjiParametrowychSzablonowychDlaStrony(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- local nazwy_modul=require("Module:Nazwy"); local dwukropek=(nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_aktualna_czy_biezaca)==""); local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst) if(obiekt=="SZABLON")then local numer_szablonu=p.NumerSzablonuKodowaniaTekstu(self,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); ---- szablon=__FUNKCJA4 and __FUNKCJA4(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or szablon; ---- local wynik=FunkcjaIterajacaRozwijanegoSzablonu(szablon,obiekt,kod,tekst,numer_szablonu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_modulu_aktualna_czy_biezaca,dwukropek,false,__PRZEDFUNKCJA,__FUNKCJA0,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY); if(wynik)then return wynik;end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu,tab_usun; end; p["UstalanieNazwyWywołania"]=function(nazwa,__FUNKCJA,__FUNKCJA2) local html_modul=require("Module:Html"); nazwa=html_modul.DecodeHtml(nazwa,true); local rezultat=nil; if(__FUNKCJA)then local nazwa_rozwinieta; nazwa_rozwinieta,rezultat=__FUNKCJA(nazwa); nazwa=nazwa_rozwinieta or nazwa; end; local nazwa,modyfikatory,tabela_modyfikatorow=p.WydzielanieOpcjiModyfikatorowych(nazwa); nazwa=((__FUNKCJA2) and (not rezultat)) and (__FUNKCJA2(nazwa,tabela_modyfikatorow) or nazwa) or nazwa; if(not tabela_modyfikatorow)then nazwa=html_modul.EncodeId(nazwa); return nazwa; end; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=mw.ustring.match(nazwa,"^[%s_]*[^:]") and nazwy_modul["NAZWAPRZESTRZENI"](nazwa); if(nazwa_przestrzeni)then if(nazwa_przestrzeni=="")then if(tabela_modyfikatorow["#invoke:"])then nazwa="Module:"..nazwa; elseif(tabela_modyfikatorow["int:"])then nazwa="MediaWiki:"..nazwa; end; else local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((nazwy_np_modul.Module~=nazwa_przestrzeni)and(tabela_modyfikatorow["#invoke:"]))then nazwa="Module:"..nazwa; elseif((nazwy_np_modul.MediaWiki~=nazwa_przestrzeni)and(tabela_modyfikatorow["int:"]))then nazwa="MediaWiki:"..nazwa; end; end; end; nazwa=html_modul.EncodeId(nazwa); return nazwa,tabela_modyfikatorow; end; p["SzablonowaNazwaStrony"]=function(czy_szablon,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony; end; end; end; if(not czy_szablon)then return;end; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](czy_szablon,tabela_nazw); local nazwa_szablonu; if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(czy_szablon,"^%s*[^:]"); if((czy_nie_dwukropek)or(czy_szablon==""))then local czy_szablon=parametry_modul["Odstępy"]{nazwa=czy_szablon,["wewnątrz"]="tak",}; nazwa_szablonu=(tabela_nazw.m) and mw.getContentLanguage():ucfirst(czy_szablon) or czy_szablon; else nazwa_szablonu=":"..nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; elseif(nazwa_przestrzeni_szablonu==nazwy_np_modul.Template)then nazwa_szablonu=nazwy_modul["NAZWASTRONY"]({nazwa=czy_szablon,},tabela_nazw); else nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](czy_szablon,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[3])then tablica_danych_parametrow_szablonu_strony[3]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony=nazwa_szablonu; end; return nazwa_szablonu; end; p["PełnaNazwaStronyNazwySzablonu"]=function(frame,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony; end; end; end; local parametry_modul=require("Module:Parametry"); ---- local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa_szablonu=PobierzParametr(1) or PobierzParametr("nazwa"); ---- if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); ---- local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_szablonu,tabela_nazw); local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then local czy_nie_dwukropek=mw.ustring.match(nazwa_szablonu,"^%s*[^:]"); if(czy_nie_dwukropek)then local nazwa_szablonu=parametry_modul["Odstępy"]{nazwa=nazwa_szablonu,["wewnątrz"]="tak",}; pelna_nazwa_szablonu=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "")..((tabela_nazw.m)and mw.getContentLanguage():ucfirst(nazwa_szablonu) or nazwa_szablonu); else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; else pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_szablonu,tabela_nazw); end; if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[5])then tablica_danych_parametrow_szablonu_strony[5]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[5]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.generalna_nazwa_strony=pelna_nazwa_szablonu; end; return pelna_nazwa_szablonu; end; p["PełnaNazwaStronyWywołańSzablonowych"]=function(nazwa_szablonu,klucz_przestrzeni,klucz_projektu,kod_jezyka,kod_projektu) if(not nazwa_szablonu)then return;end; local nazwy_modul=require("Module:Nazwy"); local tabela_nazw={}; local nazwa_przestrzeni_szablonu=nazwy_modul["NAZWAPRZESTRZENI"]({nazwa=nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); local klucz_przestrzeni_niekanoniczna; local wiki_modul=require("Module:Wiki"); local czy_biezaca; if(tabela_nazw.czy_aktualna_wiki==nil)then czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca)then klucz_przestrzeni_niekanoniczna=nazwy_modul.Np{nazwa=klucz_przestrzeni,}; else klucz_przestrzeni_niekanoniczna=nazwy_modul.NpDane{nazwa=klucz_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,}; end; local pelna_nazwa_szablonu; local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_szablonu==nazwy_np_modul.Main)then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; elseif(((klucz_przestrzeni=="MediaWiki")or(klucz_przestrzeni=="Module"))and(nazwa_przestrzeni_szablonu~=klucz_przestrzeni_niekanoniczna))then pelna_nazwa_szablonu=((klucz_przestrzeni~="")and (klucz_przestrzeni..":") or "")..nazwa_szablonu; else pelna_nazwa_szablonu=nazwa_szablonu; end; local tabela_nazw={}; pelna_nazwa_szablonu=nazwy_modul["PEŁNANAZWASTRONY"]({nazwa=pelna_nazwa_szablonu,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod_projektu"]=kod_projektu,},tabela_nazw); return pelna_nazwa_szablonu; end; p["NazwaSzablonuWywołania"]=function(szablon,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami; end; end; end; local czy_z_parametrami; local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$"); if(not czy_szablon or not zawartosc)then czy_szablon=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*}}$"); if(not czy_szablon)then return;end; czy_z_parametrami=false; else czy_z_parametrami=true; end; --czy_szablon=__FUNKCJA and (__FUNKCJA(czy_szablon) or czy_szablon) or czy_szablon; local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](czy_szablon,__FUNKCJA,__FUNKCJA2); local nazwa_strony=p["SzablonowaNazwaStrony"](czy_szablon); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[4])then tablica_danych_parametrow_szablonu_strony[4]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[4]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_strony=nazwa_strony; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=tabela_modyfikatorow; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_z_parametrami=czy_z_parametrami; end; return nazwa_strony,tabela_modyfikatorow,czy_z_parametrami; end; function p.TablicaTransportuSzablonowe(self) return self; end; local function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania,trimuj_numerowane,czy_ramka_lua) if((not czy_ramka_lua)or(not czy_ramka_lua[1])or((czy_ramka_lua[1])and(czy_ramka_lua[2])))then local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^([^|=]-)$"); if(kawalek_wywolania_element_nienazwany)then ---- local __metatabelka=getmetatable(tworzona_tabela); local len=__metatabelka.__len(tworzona_tabela) ---- tworzona_tabela[len+1]={((trimuj_numerowane) and (mw.text.trim(kawalek_wywolania_element_nienazwany)) or kawalek_wywolania_element_nienazwany),true,}; 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; else local __metatabelka=getmetatable(tworzona_tabela); __metatabelka.newindex(true,kawalek_wywolania); czy_ramka_lua[2]=true; return tworzona_tabela; end; return nil; end; local function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu,trimuj_numerowane,czy_ramka_lua) 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,trimuj_numerowane,czy_ramka_lua); return parametry_szablonu; end; if(kawalek_wywolania)then ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania,trimuj_numerowane,czy_ramka_lua); return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu,trimuj_numerowane,czy_ramka_lua); end; return nil; end; p.__MetaFunkcjaParsowanieSzablonu=function(__metatablica) local parametry_modul=require("Module:Parametry"); local i=1; local tablica={}; __metatablica.PobierzGeneralnaTablica=function(t) return tablica; end; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab[1]; end; __metatablica.index=function(t,klucz) return tablica[klucz]; end; __metatablica.__newindex=function(t,klucz,wartosc) if(wartosc~=nil)then if(parametry_modul.TypeTable(wartosc))then tablica[klucz]={wartosc[1],i,wartosc[2],}; else tablica[klucz]={wartosc,i,}; end; i=i+1; else tablica[klucz]=nil; end; end; __metatablica.newindex=function(t,klucz,wartosc) tablica[klucz]=wartosc; end; __metatablica.__pairs=function(t) local tablica2={}; for name, value in pairs(tablica)do tablica2[name]=value[1]; end; return next,tablica2,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v[1]; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; p["ParsowanieWywołaniaSzablonu"] = function(wywolanie_szablonu,trimuj_numerowane,__FUNKCJA,__FUNKCJA2,tablica_danych_parametrow_szablonu_strony,kod) local nazwa_parsowania=nil;local modyfikatory_parsowania=nil; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then if((tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu)and(tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow))then if(tablica_danych_parametrow_szablonu_strony_numer_kod.parametry)then return tablica_danych_parametrow_szablonu_strony_numer_kod.parametry,tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu,tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; nazwa_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; modyfikatory_parsowania=tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow; end; end; end; end; ---- local function NazwaSzablonu(nazwa_szablonu) if((not nazwa_parsowania)or(not modyfikatory_parsowania))then local nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna=p["UstalanieNazwyWywołania"](nazwa_szablonu,__FUNKCJA,__FUNKCJA2); nazwa_szablonu_ostateczna=p["SzablonowaNazwaStrony"](nazwa_szablonu_ostateczna); return nazwa_szablonu_ostateczna,tabela_modyfikatorow_ostateczna; else return nazwa_parsowania,modyfikatory_parsowania; end; end; local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^|]-}}$"); if(not wywolanie_bez_parametrow)then local nazwa_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*|.-}}$"); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"^{{[^|]*|(.*)}}$"); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- local czy_ramka_lua={tabela_modyfikatorow and tabela_modyfikatorow["#invoke:"] or nil,false,}; ---- tabela_parametrow_szablonu=ParametrySzablonu(parametry_wywolania_szablonu,tabela_parametrow_szablonu,trimuj_numerowane,czy_ramka_lua); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; else local nazwa_szablonu=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^|]-)%s*}}$")); if(nazwa_szablonu)then local nazwa_szablonu,tabela_modyfikatorow=NazwaSzablonu(nazwa_szablonu); ---- local __metatabelka={}; p.__MetaFunkcjaParsowanieSzablonu(__metatabelka); local tabela_parametrow_szablonu={}; setmetatable(tabela_parametrow_szablonu,__metatabelka); ---- if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[1])then tablica_danych_parametrow_szablonu_strony[1]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[1]; tablica_danych_parametrow_szablonu_strony_numer[kod]={}; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.parametry=tabela_parametrow_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu=nazwa_parsowania or nazwa_szablonu; tablica_danych_parametrow_szablonu_strony_numer_kod.tabela_modyfikatorow=modyfikatory_parsowania or tabela_modyfikatorow; end; ---- return tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow; else return nil;end; end; end; function p.WydzielanieOpcjiModyfikatorowych(pole_nazwy) local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local opis_elementowe_modyfikatory=szablonowe_dane_modul.opis_elementowe_modyfikatory; local modyfikatory=""; local tab_mod=nil; if(not mw.ustring.match(pole_nazwy,opis_elementowe_modyfikatory))then return pole_nazwy,modyfikatory,tab_mod; end; ---- local tab_modyfikatory=szablonowe_dane_modul.tablica_elementowe_modyfikatory_szablonowe; ---- local function PojedynczeModyfikatory(pole,modyfikatory) for modyfikator,tab in pairs(tab_modyfikatory) do local modyfikator_uzyty,pole_dalej=mw.ustring.match(pole,"^("..tab[1]..")(.*)$"); if(modyfikator_uzyty)then if(not tab_mod)then tab_mod={};end; if(not tab_mod[modyfikator])then tab_mod[modyfikator]=true; end; modyfikatory=modyfikatory..modyfikator_uzyty; return PojedynczeModyfikatory(pole_dalej,modyfikatory) end; end; return pole,modyfikatory; end; local pole_ostateczne,modyfikatory_ostateczne=PojedynczeModyfikatory(pole_nazwy,modyfikatory); return pole_ostateczne,modyfikatory_ostateczne,tab_mod; end; function p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#switch:"]) )then return true; end; end; end; function p.CzyModyfikatoryCharakterystyczneSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu) if(tabela_modyfikatorow)then if((tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#tag:"]) )then return true; end; end; end; function p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod) if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon; end; end; end; local function RozpatrywanieSzablonowe() if(tabela_modyfikatorow)then if((tabela_modyfikatorow["int:"]) or(tabela_modyfikatorow["#if:"]) or(tabela_modyfikatorow["#ifeq:"]) or(tabela_modyfikatorow["#ifexpr:"]) or(tabela_modyfikatorow["#expr:"]) or(tabela_modyfikatorow["#iferror:"]) or(tabela_modyfikatorow["#ifexist:"]) or(tabela_modyfikatorow["#tag:"]) or(tabela_modyfikatorow["#switch:"]) or(tabela_modyfikatorow["#property:"]) or(tabela_modyfikatorow["#invoke:"]) or(tabela_modyfikatorow["gender:"]) or (tabela_modyfikatorow["ucfirst:"]) or (tabela_modyfikatorow["lcfirst:"]) or (tabela_modyfikatorow["uc:"]) or (tabela_modyfikatorow["lc:"]) )then return false; end; end; if((nazwa_szablonu)and(nazwa_szablonu~=""))then local parametry_modul=require("Module:Parametry"); if((parametry_modul.TypeBoolean(tabela_parametrow_szablonu))and(tabela_parametrow_szablonu))then return true;end; if(tabela_parametrow_szablonu)then local parametry_modul=require("Module:Parametry"); local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu); if(czy_nie_brak_parametrow)then return true;end; end; return ((not mw.ustring.match(nazwa_szablonu,"^[%s_]*#[%s_]*%a+[%s_]*:")) and true or false); end; return true; end; local wynik=RozpatrywanieSzablonowe(); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[2])then tablica_danych_parametrow_szablonu_strony[2]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[2]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.czy_normalny_szablon=wynik; end; return wynik; end; function p.KodowanieInaczejZakodowanychNormKodowychTekstuWedleJegoTablicyKodowania(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane) local parametry_modul=require("Module:Parametry"); local tablica_obiektow_strony_danych_kodow_specjalnych_modul={}; local tab_grupa={}; local math_numer=0;local licznik_linkz=1; tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then local tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,nil,nil,tablica_danych_parametrow_szablonu_strony,kod); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ----- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; end; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["REF"..grupa][tab_grupa[grupa]]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("REF"..grupa,tab_grupa[grupa]); end; elseif(obiekt=="MATH")then math_numer=math_numer+1; ---- if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"]={};end; if(not tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer])then tablica_obiektow_strony_danych_kodow_specjalnych_modul["POSTMATH"][math_numer]=szablon;end; ---- return p.NormaKoduKodowaniaTekstu("POSTMATH",math_numer); end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; return szablon; end); return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_danych_kodow_specjalnych_modul; end; function p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,trimuj_numerowane,__FUNKCJA_INNE_OPERACJE,__FUNKCJA_INNE_OPERACJE2,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE) local parametry_modul=require("Module:parametry"); local tab_grupa={};local licznik_linkz=1; local tab_usun; tekst_rozwiniety_calego_artykulu,tab_usun=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="SZABLON")then return p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu_aktualna_czy_biezaca,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((nazwa_szablonu=="R")or(nazwa_szablonu=="RN"))then local grupa=""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..tab_grupa[grupa].."&#93;" elseif((nazwa_szablonu=="U")or(nazwa_szablonu=="UN"))then local grupa="uwaga"; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ----- return "&#91;"..grupa.." "..tab_grupa[grupa].."&#93;"; elseif((nazwa_szablonu=="Ref")or(nazwa_szablonu=="O"))then local grupa=tabela_parametrow_szablonu["grupa"] or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,trimuj_numerowane); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(nazwa=="ref")then tab_atrybuty=tab_atrybuty or {}; local grupa=tab_atrybuty["group"]; grupa=parametry_modul.TypeString(grupa) and grupa or ""; tab_grupa[grupa]=(tab_grupa[grupa] or 0)+1; ---- return "&#91;"..((grupa~="")and(grupa.." ") or "")..tab_grupa[grupa].."&#93;"; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nazwa,zawartosc,tab_atrybuty,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; else if(__FUNKCJA_INNE_OPERACJE)then return __FUNKCJA_INNE_OPERACJE(szablon,obiekt,kod,nil,nil,nil,tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul); end; end; return nil,true;--szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end,nil,nil,nil,function(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul) if(obiekt=="LINKZ")then local url=mw.ustring.match(szablon,"^%[(%S+)%s*%]$") if(url)then local szablon="["..url.." &#91;"..licznik_linkz.."&#93;]"; tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon; licznik_linkz=licznik_linkz+1; return szablon; end; end; if(__FUNKCJA_INNE_OPERACJE2)then return __FUNKCJA_INNE_OPERACJE2(szablon,obiekt,kod,poziom_numeracji,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul); end; return szablon; end,nil,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE_RODZICA,__FUNKCJA_OPERACJE_CZY_W_LINKU,__FUNKCJA_OPERACJE_USUWANIE_BAZOWE,__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE); return tekst_rozwiniety_calego_artykulu,tab_usun; end; function p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw) local adres,nazwa=mw.ustring.match(linkw,"^%[%[([^|]-)|(.-)%]%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkw,"^%[%[([^|]-)%]%]$"); if(adres)then return adres;end; return nil; end; function p.WalidacjaLinkuProjektowego(linkw) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkuProjektowego(linkw); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^[^|]-[%[%]]+[^|]-$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%[%[") or mw.ustring.match(nazwa,"%]%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz) local adres,nazwa=mw.ustring.match(linkz,"^%[(%S+)%s+(.-)%]$") if((adres)and(nazwa))then return adres,nazwa;end; local adres=mw.ustring.match(linkz,"^%[(.-)%]"); return adres; end; function p.WalidacjaLinkuNieProjektowego(linkz) local adres,nazwa=p.WydzielPoleAdresoweNazwoweLinkNieProjektowego(linkz); if(not adres)then return nil;end; local spacje_adresu=mw.ustring.match(adres,"^[%s_]*$"); if(spacje_adresu)then return nil;end; local adres_w_linii=mw.ustring.match(adres,"\n"); if(adres_w_linii)then return nil;end; local walidacja_adresu=mw.ustring.match(adres,"^%S*[%[%]]%S*$"); if(walidacja_adresu)then return nil;end; if(not nazwa)then return adres,nazwa;end; local nazwa_w_linii=mw.ustring.match(nazwa,"\n"); if(nazwa_w_linii)then return nil;end; local walidacja_nazwy=mw.ustring.match(nazwa,"%]"); if(walidacja_nazwy)then return nil;end; return adres,nazwa; end; function p.OdkodowanieZakodowanychNormKodowychNieschematycznychRzeczy(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul) local tablica_kodow={};local tak=false; local iterator=p.IteratorSzablonowyZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); local szablonowe_dane_modul=mw.loadData("Module:Szablonowe/dane"); local tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki=szablonowe_dane_modul.tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki; for szablon,obiekt,kod in iterator do if(tablica_kodowa_obiektowa_typowo_mechanizmu_mediawiki[obiekt])then local iter=mw.ustring.gmatch(szablon,p.NormaWzoruKodowaniaTekstu()); for obiekt,kod in iter do if(not tablica_kodow[obiekt])then tablica_kodow[obiekt]={};end; tablica_kodow[obiekt][kod]=true; tak=true; end; end; end; --if(not tak)then return tekst_rozwiniety_calego_artykulu;end; local strony_modul=require("Module:Strony"); local specjalne_modul=require("Module:Specjalne"); --local frame=mw.getCurrentFrame(); tekst_rozwiniety_calego_artykulu=p.KompletowanieSzablonoweZakodowanegoTekstu(self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul,function(szablon2,obiekt2,kod2) if((tablica_kodow)and(tablica_kodow[obiekt2])and(tablica_kodow[obiekt2][kod2]))then if(mw.ustring.gmatch(szablon2,p.NormaWzoruKodowaniaTekstu()))then szablon2=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); return szablon2; end; elseif(obiekt2=="LINKW")then if(mw.ustring.match(szablon2,"^%[%[[%s:_]*%]%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); if(not specjalne_modul["CzyPlik"](szablon_rozwiniete))then --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local czy_nie_linkw=not p.WalidacjaLinkuProjektowego(szablon_rozwiniete); if(czy_nie_linkw)then return szablon2; end; end; elseif(obiekt2=="LINKZ")then if(mw.ustring.match(szablon2,"^%[%s*%]$"))then return szablon2;end; local szablon_rozwiniete=p.KompletowanieSzablonoweZakodowanegoTekstu(self,szablon2,nazwa_modulu_aktualna_czy_biezaca,tablica_analizy_obiektow_strony_dany_modul); --szablon_rozwiniete=frame:preprocess(szablon_rozwiniete); local adres,nazwa=p.WalidacjaLinkuNieProjektowego(szablon_rozwiniete); if(adres)then local czy_linkz=strony_modul.SprawdzanieURL(adres); if(not czy_linkz)then return szablon2;end; else return szablon2; end; end; return nil,true; end); return tekst_rozwiniety_calego_artykulu; end; p["PokazanieWywołaniaSzablonu"]=function(szablon, args) local result = {}; 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.KodSymbolicznySzablonu(nazwa,args,modyfikatory,jako_szablony) local __metatabelka=getmetatable(args); local result={}; table.insert(result,((jako_szablony) and "{{((}}" or "{{")); for name,_ in pairs(modyfikatory or {})do table.insert(result,name); end; table.insert(result,nazwa); if(not __metatabelka)then for name,value in pairs(args or {})do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,name..((jako_szablony) and "{{=}}" or "=")..value); end; else local tabelka_metatable=__metatabelka.PobierzGeneralnaTablica(args); local tab_inna_tabelka={}; local funkcja; local juz_jest=nil; for name,value in pairs(tabelka_metatable)do if((juz_jest)or(name~=true))then tab_inna_tabelka[value[2]]={name,value[1],value[3],}; else funkcja=value; juz_jest=true; end; end; if(funkcja)then table.insert(result,((jako_szablony) and "{{!}}" or "|")); if(jako_szablony)then funkcja=mw.ustring.gsub(funkcja,"=",function(znak) return "{{=}}"; end); end; table.insert(result,funkcja); end; for _,value in ipairs(tab_inna_tabelka)do table.insert(result,((jako_szablony) and "{{!}}" or "|")); table.insert(result,((not value[3])and(value[1]..((jako_szablony) and "{{=}}" or "=")) or "")..value[2]); end; end; table.insert(result,((jako_szablony) and "{{))}}" or "}}")); return table.concat(result,""); end; function p.KodSymbolicznySzablonowejRamkiLuaInstrukcjiWarunkowejLubTagu(szablon) szablon=mw.ustring.gsub(szablon,"^{{(.-)}}$",function(zawartosc) zawartosc=mw.ustring.gsub(zawartosc,"[|=]",function(znak) if(znak=="|")then return "{{!}}";else return "{{=}}";end; end); return "{((}}"..zawartosc.."{{))}}"; end); return szablon; end; function p.NazwaSzablonu(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr(1) or PobierzParametr("nazwa"); 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 ":"..nazwy_modul["PEŁNANAZWASTRONY"](nazwa); else return nazwy_modul["PEŁNANAZWASTRONY"](nazwa); end; end; function p.ZnacznikoweTrueFalseSzeregZnakowy(yes) local yes_male=mw.ustring.lower(yes); return ((yes_male=="true") and true or ((yes_male~="false")and yes or false)); end; local function WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,liczba_obiektu) local liczba_obiektu=liczba_obiektu or 100; if((tablica_danych_parametrow_szablonu_strony)and(kod))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(tablica_danych_parametrow_szablonu_strony_numer)then local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod)then return tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika,tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika; end; end; end local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); if(not tablica_analizy_obiektow_strony_dany_modul)then tablica_analizy_obiektow_strony_dany_modul={}; znacznik,tablica_analizy_obiektow_strony_dany_modul=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(znacznik,tablica_analizy_obiektow_strony_dany_modul); end; local html_modul=require("Module:Html"); znacznik=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik); znacznik=mw.ustring.gsub(znacznik,"(</[%a%d]+)(%s+[^<>]*)(>)%s*$","%1%3"); local nazwa,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*>(.-)</(%1)%s*>%s*$"); if((nazwa)and(zawartosc))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),zawartosc,nil; end; ---- local nazwa=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s*/?%s*>%s*$"); if(nazwa)then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return mw.ustring.lower(nazwa),nil,nil; end; ---- local nazwa,atrybuty,zawartosc=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*>(.-)</([%a%d]+)%s*>%s*$"); ---- if((not nazwa)or(not atrybuty)or(not zawartosc))then nazwa,atrybuty=mw.ustring.match(znacznik,"^%s*<([%a%d]+)%s+([^<>]-)%s*/?%s*>%s*$"); if((not nazwa)or(not atrybuty))then if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=nil; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=nil; end; return nil,nil,nil; end; end; ----- local techniczne_modul=require("Module:Techniczne"); local tab_atrybuty=szablonowe_potrzebne_modul.AtrybutyZnacznika(atrybuty,tablica_analizy_obiektow_strony_dany_modul); if((tablica_danych_parametrow_szablonu_strony)and(kod))then if(not tablica_danych_parametrow_szablonu_strony[liczba_obiektu])then tablica_danych_parametrow_szablonu_strony[liczba_obiektu]={};end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[liczba_obiektu]; if(not tablica_danych_parametrow_szablonu_strony_numer[kod])then tablica_danych_parametrow_szablonu_strony_numer[kod]={};end; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer[kod]; tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_znacznika=nazwa; tablica_danych_parametrow_szablonu_strony_numer_kod.istota_znacznika=zawartosc; tablica_danych_parametrow_szablonu_strony_numer_kod.atrybuty_znacznika=tab_atrybuty; end; return mw.ustring.lower(nazwa),zawartosc,tab_atrybuty; end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,100); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguMath(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,101); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,102); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,103); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,104); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguGallery(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,105); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguImageMap(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,106); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguInputBox(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,107); end; function p.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguQuiz(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod) return WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeFormZnacznikowych(znacznik,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod,108); end; function p.KodSymbolicznyTagu(nazwa,zawartosc,atrybuty,jako_szablony) local tab_str={}; table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,nazwa); if(atrybuty)then local parametry_modul=require("Module:Parametry"); for name,value in pairs(atrybuty)do table.insert(tab_str," "); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{=}}","="); if(parametry_modul.TypeString(value))then table.insert(tab_str,"\""..value.."\""); else table.insert(tab_str,tostring(value)); end; end; end; table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); table.insert(tab_str,zawartosc or ""); table.insert(tab_str,jako_szablony and "{{Mniejszy}}" or "<"); table.insert(tab_str,"/"); table.insert(tab_str,name); table.insert(tab_str,jako_szablony and "{{Większy}}" or ">"); return table.concat(tab_str,""); end; function p.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,__FUNKCJA1,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA6,__FUNKCJA7,__FUNKCJA8,__FUNKCJA9,__FUNKCJA_domyslna,__FUNKCJA_begin,__FUNKCJA_parsowania,__FUNKCJA_parametry,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,trimuj_numerowane) ---- local wynik=__FUNKCJA_begin and __FUNKCJA_begin(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(wynik)then return nil;end; local tablica_danych_parametrow_szablonu_strony_numer=kod and tablica_danych_parametrow_szablonu_strony and tablica_danych_parametrow_szablonu_strony[1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; local tab_pop=tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.nazwa_szablonu; --and tablica_danych_parametrow_szablonu_strony_numer_kod.parametry; ---- local tabela_parametrow_szablonu;local nazwa_szablonu;local tabela_modyfikatorow; local parametry_modul=require("Module:Parametry"); if((not __FUNKCJA_parsowania) or ((__FUNKCJA_parsowania)and(__FUNKCJA_parsowania(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa))))then tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=p["ParsowanieWywołaniaSzablonu"](szablon,trimuj_numerowane,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); else nazwa_szablonu,tabela_modyfikatorow=p["NazwaSzablonuWywołania"](szablon,__FUNKCJA_nazwa1,__FUNKCJA_nazwa2,tablica_danych_parametrow_szablonu_strony,kod); tabela_parametrow_szablonu=(not __FUNKCJA_parametry) and true or __FUNKCJA_parametry(szablon,"SZABLON",kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa); end; if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu,tablica_danych_parametrow_szablonu_strony,kod))then ---- if(__FUNKCJA7 and __FUNKCJA7(nazwa_szablonu) or ((not __FUNKCJA7) and true or false))then if(__FUNKCJA1 or __FUNKCJA_domyslna)then local techniczne_modul=require("Module:Techniczne"); if(not tab_pop)then if((kod)and(tablica_danych_parametrow_szablonu_strony))then local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[-1]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; local tablica_danych_parametrow_szablonu_strony_numer=tablica_danych_parametrow_szablonu_strony[3]; local tablica_danych_parametrow_szablonu_strony_numer_kod=tablica_danych_parametrow_szablonu_strony_numer and tablica_danych_parametrow_szablonu_strony_numer[kod]; if(tablica_danych_parametrow_szablonu_strony_numer_kod and tablica_danych_parametrow_szablonu_strony_numer_kod.szablonowa_nazwa_strony )then tablica_danych_parametrow_szablonu_strony_numer[kod]=nil; end; end; end; nazwa_szablonu=pelna_nazwa_spisu_tresci_szablonowa and techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]({[1]=nazwa_szablonu,[2]=pelna_nazwa_spisu_tresci_szablonowa,},tablica_danych_parametrow_szablonu_strony,kod) or nazwa_szablonu; nazwa_szablonu=p["SzablonowaNazwaStrony"](nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(__FUNKCJA1)then return __FUNKCJA1(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); else return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA8)then return __FUNKCJA8(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow,nazwa_szablonu,tabela_parametrow_szablonu))then if(__FUNKCJA2)then return __FUNKCJA2(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow)then if(tabela_modyfikatorow["#invoke:"])then if(__FUNKCJA3)then return __FUNKCJA3(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; elseif(tabela_modyfikatorow["#tag:"])then if(__FUNKCJA4)then nazwa_szablonu=mw.getContentLanguage():lc(nazwa_szablonu); return __FUNKCJA4(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else local czy_sa_takie_funkcje=(__FUNKCJA5 and __FUNKCJA6) and true or nil; if(czy_sa_takie_funkcje)then local function CzyTenSzablonToParser(tabela_modyfikatorow) for name,value in pairs(tabela_modyfikatorow)do if(mw.ustring.match(name,"^#%a+:$"))then return true; end; end; return false; end; if(CzyTenSzablonToParser(tabela_modyfikatorow))then if(__FUNKCJA5)then return __FUNKCJA5(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; else if(__FUNKCJA6)then return __FUNKCJA6(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; else if(__FUNKCJA9)then return __FUNKCJA9(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); elseif(__FUNKCJA_domyslna)then return __FUNKCJA_domyslna(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,"SZABLON",kod); end; end; end; p["SprawdzanieCzyWystępujeDanySzablonWTekście"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr(1) or PobierzParametr("tekst"); local pattern=PobierzParametr(2) or PobierzParametr("wzór"); local szablon=PobierzParametr(3) or PobierzParametr("szablon"); local czy_z_parametrami=PobierzParametr(4) or PobierzParametr("z parametrami"); ---- local parametry_modul=require("Module:Parametry"); czy_z_parametrami=((parametry_modul.TypeTable(czy_z_parametrami)) and czy_z_parametrami or (((not parametry_modul.TypeString(czy_z_parametrami)) and(not parametry_modul.TypeNil(czy_z_parametrami)) and(not parametry_modul.TypeBoolean(czy_z_parametrami))) and czy_z_parametrami or (parametry_modul.CzyTak(czy_z_parametrami) and true or false) ) ); ---- szablon=parametry_modul["Odstępy"]{[1]=szablon,[2]="tak",}; szablon=mw.getContentLanguage():ucfirst(szablon); ---- local iter=mw.ustring.gmatch(tekst,pattern); for nazwa_szablonowa in iter do local czy_szablon,tabela_modyfikatorow=p["UstalanieNazwyWywołania"](nazwa_szablonowa); local nazwa_szablonu=p["SzablonowaNazwaStrony"](czy_szablon); if(p.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu,czy_z_parametrami))then if(nazwa_szablonu==szablon)then return "tak"; end; end; end; return nil; end; return p; qs1pgvfke0c3hucuzibllw8g9nykgls Moduł:Brudnopis/Persino/test 828 59681 544807 541310 2026-06-01T07:09:22Z Persino 2851 544807 Scribunto text/plain local p={}; local __MetaFunkcja=function(__metatablica) local tablica={}; __metatablica.__len=function(t) return #tablica; end; __metatablica.__index=function(t,klucz) mw.log("index"); local tab=tablica[klucz]; if(tab==nil)then return nil;end; return tab; end; __metatablica.__newindex=function(t,klucz,wartosc) mw.log("newindex"); tablica[klucz]=wartosc; end; __metatablica.__pairs=function(t) return next,tablica,nil; end; local function iter(a,i) i=i+1; local v = a[i]; if v then return i, v; end end __metatablica.__ipairs=function(t) return iter,tablica,0; end; end; function p.TYTAN(frame) local __metatabelka={}; __MetaFunkcja(__metatabelka); local tab2={}; setmetatable(tab2,__metatabelka); local tab=tab2; tab[1]=1; mw.log(tab[1]); end; return p; bnevq82ndlwtcp55kde5bnwdo1df5f7 Moduł:StronicowyParser/AnalizaSpisuRzeczy 828 60192 544749 544748 2026-05-31T12:20:46Z Persino 2851 544749 Scribunto text/plain local p={}; function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=false; local techniczne_modul=require("Module:Techniczne"); linia=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(linia); for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci) do tak=tak or (((not spacje_na_poczatku) or (not mw.ustring.match(linia,"^%s+"))) and (mw.ustring.match(linia,"^"..p_wzor.."$"))); if(tak)then return true;end; end; return nil; end; function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local techniczne_modul=require("Module:Techniczne"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^\n]+)",liczba_od,liczba_do,true); if(liczba_start_rozdzial)then rozdzial=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(rozdzial); local czy_zerowy_spis_rzeczy; for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci)do czy_zerowy_spis_rzeczy=mw.ustring.match(rozdzial,p_wzor); if(czy_zerowy_spis_rzeczy)then break;end; end; if((czy_zerowy_spis_rzeczy)and(not mw.ustring.match(rozdzial,"^%s+")))then return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial; else liczba_od=liczba_start_rozdzial; end; else return; end; end; return nil; end; function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return;end; return true; end); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa)and(zawartosc))then if(nazwa=="center")then return true; end; end; end; end; function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"("..wzor..")",liczba_od,liczba_do,jak); if(liczba_start_rozdzial)then if((not mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))and(not mw.ustring.match(linia,"^[%*#:;<>]")))then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon,obiekt,kod,poziom_iteracji=iterator(); local wynik=((szablon)and(obiekt)and(kod))and p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(not wynik)then local rozdzial,czy_standardowe_rozdzialy=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((rozdzial)and(czy_standardowe_rozdzialy))then return liczba_start_rozdzial,liczba_koniec_rozdzial,linia; end; end; end; if(jak)then liczba_od=liczba_start_rozdzial;else liczba_od=liczba_koniec_rozdzial;end; else return; end; end; return nil; end; function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA,nil,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych); if(not kom)then local tab=((tab_2 and tab_2[1]) and tab_2 or nil); if(tab)then if(numer_rodzaju_artykulu==1)then local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false); local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s")))) local function StronyWstepu(artykul) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=true; for _,wzor in ipairs(stronicowyparser_obiekty_modul.artykularne_niespisowe) do tak=tak and (not mw.ustring.match(artykul,wzor)); if(not tak)then return tak;end; end; return tak; end; if((czy_glowny_spis_tresci)and(artykul==""))then return false,numer_rodzaju_artykulu,czy_podrecznik,false; else if((czy_usun_okladka)--[[or(numer_rodzaju_artykulu>1)]]or(--[[(numer_rodzaju_artykulu==1)and]](artykul~="")and(StronyWstepu(artykul))))then return true,numer_rodzaju_artykulu,czy_podrecznik,false; else return true,numer_rodzaju_artykulu,czy_podrecznik,true; end; end; else return true,numer_rodzaju_artykulu,--[[czy_podrecznik]]false,false; end; end; end; return false,nil; end; function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(obiekt=="SZABLON")then local szablonowe_modul=require("Module:Szablonowe"); local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) ---- if(nazwa_szablonu=="SpisTreści")then return true,1; else local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]; if(tabela_spisu)then local parametr_linku; if(tabela_spisu[1]==true)then local numer_link=tabela_spisu["numer_link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; else local numer_link=tabela_spisu["link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; end; if(parametr_linku)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(parametr_linku,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; end; end; end; end; end); if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; return false; end; function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); if((not czy_element_spisu)and(not numer_rodzaju_artykulu))then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); end; return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; function p.SzukanieNaPodstawieWzoru(str,wzor,liczba,liczba2,czy_od_tylu,jak) if(not czy_od_tylu)then if((liczba)and(liczba2)and(liczba>liczba2))then return;end; local a,b,c,d,e,f,g,h,i,j,k,l=mw.ustring.find(str,wzor,liczba); if((a)and(b)and(a>b))then return;end; if((not liczba2)or(b<=liczba2))then return a,b,c,d,e,f,g,h,i,j,k,l; end; return nil; else if((liczba)and(liczba2)and(liczba<liczba2))then return;end; local liczba_start=liczba2 or 1; local a,b,c,d,e,f,g,h,i,j,k,l=nil,nil,nil,nil,nil,nil,nil; while(true)do local a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1=mw.ustring.find(str,wzor,liczba_start); if((a1)and(b1)and(a1>b1))then return;end; if((not b1)or((b1)and(b1>liczba)))then return a,b,c,d,e,f,g,h,i,j,k,l; elseif((b1)and(b1==liczba))then return a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; end; a,b,c,d,e,f,g,h,i,j,k,l=a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; if(not jak)then if(a1==b1)then liczba_start=b1+1; else liczba_start=b1; end; else liczba_start=b1+1; end; end; end; end; function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); while(true)do local liczba_start_szablon,liczba_koniec_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,szablon_normy_kodowania_szablonu,liczba_obiekt_start_od_tylu,liczba_start,true); if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local obiekt="SZABLON"; local kod=kod_szablon and tonumber(kod_szablon) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; ---- local liczba_koniec_szablon,norma_wzoru=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if(nazwa_szablonu=="Licencja")then return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end; end); if(liczba_koniec_szablon)then return liczba_koniec_szablon,norma_wzoru; end; elseif(not liczba_start_szablon)then return nil; end; end; end; function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba,liczba2,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local liczba_start_szablon;local liczba_koniec_szablon; local liczba_wys_szablon=liczba; local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); local spis_naglowka_szablon; local spis_naglowka_szablon_stare; while(true)do local kod; liczba_start_szablon,liczba_koniec_szablon,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_szablonu,liczba_wys_szablon,liczba2,czy_od_tylu); if(liczba_start_szablon)then if(not czy_od_tylu)then liczba_wys_szablon=liczba_koniec_szablon;else liczba_wys_szablon=liczba_start_szablon;end; local obiekt="SZABLON"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local liczba_szablon_centrowany=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(liczba_szablon_centrowany)then local naglowek=tabela_parametrow_szablonu[liczba_szablon_centrowany]; if(naglowek)then if(not mw.ustring.match(naglowek,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_szablon_stare=naglowek; spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_szablon))then return false; end; else spis_naglowka_szablon=naglowek; return false; end; end; end; end; return true; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return true; end); if(not wynik)then break; end; else break; end; end; local liczba_start_znacznik;local liczba_koniec_znacznik; local liczba_wys_znacznik=liczba; local norma_kodowania_znacznika=szablonowe_modul.NormaWzoruKodowaniaTekstu("ZNACZNIK"); local spis_naglowka_znacznik; local spis_naglowka_znacznik_stare; while(true)do local kod; liczba_start_znacznik,liczba_koniec_znacznik,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_znacznika,liczba_wys_znacznik,liczba2,czy_od_tylu); if(liczba_start_znacznik)then if(not czy_od_tylu)then liczba_wys_znacznik=liczba_koniec_znacznik;else liczba_wys_znacznik=liczba_start_znacznik;end; local obiekt="ZNACZNIK"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then if(zawartosc)then if(not mw.ustring.match(zawartosc,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_znacznik_stare=zawartosc; spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(zawartosc,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_znacznik))then break; end; else spis_naglowka_znacznik=zawartosc; break; end; end; end; end; else break; end; end; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local liczba_start_dodatni;local liczba_koniec_dodatni; local liczba_wys_dodatni=liczba; local spis_naglowka_dodatni; local spis_naglowka_dodatni_stare; local spis_naglowka_poziom; while(true)do local naglowek; liczba_start_dodatni,liczba_koniec_dodatni,naglowek=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"(=+[^\n]*[^=\n][^\n]*=+)[^%S\n]*",liczba_wys_dodatni,liczba2,czy_od_tylu); if(not liczba_start_dodatni)then break;end; if(not czy_od_tylu)then liczba_wys_dodatni=liczba_koniec_dodatni;else liczba_wys_dodatni=liczba_start_dodatni;end; local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek); if(naglowek)then if(czy_spis_tresci)then spis_naglowka_dodatni_stare=naglowek; spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; spis_naglowka_poziom=poziom_naglowka; if(czy_spis_tresci(spis_naglowka_dodatni))then break; end; else spis_naglowka_dodatni=naglowek; spis_naglowka_poziom=poziom_naglowka; break; end; end; end; if((liczba_start_szablon)or(liczba_start_znacznik)or(liczba_start_dodatni))then local _max_min; if(czy_od_tylu)then _max_min=math.max(math.max(liczba_start_szablon or 0,liczba_start_znacznik or 0),liczba_start_dodatni or 0); else _max_min=math.min(math.min(liczba_start_szablon or #tekst_rozwiniety_calego_artykulu,liczba_start_znacznik or #tekst_rozwiniety_calego_artykulu),liczba_start_dodatni or #tekst_rozwiniety_calego_artykulu); end; if((liczba_start_szablon)and(_max_min==liczba_start_szablon))then local spis_naglowka_szablon_stare=spis_naglowka_szablon_stare or spis_naglowka_szablon; if((not czy_spis_tresci)and(spis_naglowka_szablon))then spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; end; return liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon,spis_naglowka_szablon_stare,nil; elseif((liczba_start_znacznik)and(_max_min==liczba_start_znacznik))then local spis_naglowka_znacznik_stare=spis_naglowka_znacznik_stare or spis_naglowka_znacznik; if((not czy_spis_tresci)and(spis_naglowka_znacznik))then spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_znacznik,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; end; return liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik,spis_naglowka_znacznik_stare,nil; elseif((liczba_start_dodatni)and(_max_min==liczba_start_dodatni))then local spis_naglowka_dodatni_stare=spis_naglowka_dodatni_stare or spis_naglowka_dodatni; if((not czy_spis_tresci)and(spis_naglowka_dodatni))then spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_dodatni,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; end; return liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_poziom; end; end; return nil; end; function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy; local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local linki=function(zawartosc) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="LINKW")or(obiekt=="LINKZ"))then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; elseif(obiekt=="SZABLON")then local szablon,obiekt,kod,dalszy_tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) or(stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) )then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(tab_szablon_link_intelignetny)then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; end); return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; if(obiekt=="SZABLON")then local szablon,obiekt,kod=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return nil;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return nil;end; local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end); return szablon,obiekt,kod; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(zawartosc)then if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; return nil; end; end; function p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_spis,liczba_start_tekst,liczba2,czy_od_tylu) local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; local a1;local a2;local a3;local a4;local a5;local a6;local a7;local a8;local a9;local a10; local dlugosc_tekstu_wyszukiwanego=#tekst_rozwiniety_calego_artykulu; if(not czy_od_tylu)then if((not liczba_start_tekst)or(liczba_start_tekst==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==1))and((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; end; end; end; else if(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego))and((not liczba2)or(liczba2==1)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; end; end; end; end; return liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10; end; function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do --czy_w_petli=true; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then return true; elseif((not czy_element_spisu)and(numer_rodzaju_artykulu))then tak=true; elseif(czy_okladka)then tak=true; end; end; return (not tak); end; function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek+1,liczba_obiekt_start_nowe-1); if((mw.ustring.match(str,"^%s*'+(.+)'+%s*$")) or(mw.ustring.match(str,"^[%*#:;<>]+.*$") or(mw.ustring.match(str,"^[%s%p%w]*$"))) )then return nil;end; local ile_punktowanych=0; local szablonowe_modul=require("Module:Szablonowe"); local _,ile=mw.ustring.gsub(str,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[%*#;:<>]"))or(mw.ustring.match(linia,"^%s*$")))then ile_punktowanych=ile_punktowanych+1; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(numer_rodzaju_artykulu>2))then ile_punktowanych=ile_punktowanych+1; break; end; end; end; end); if(ile_punktowanych>=ile)then return nil; end; str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then if(czy_zeruj)then tab_zmienne.liczba_nie_okladka_artykul=nil; tab_zmienne.liczba_pierwszy_rozdzialowy_artykul=nil; tab_zmienne.czy_ten_rozdzial=nil; --tab_zmienne={["liczba_nie_okladka_artykul"]=liczba_nie_okladka_artykul,["liczba_pierwszy_rozdzialowy_artykul"]=liczba_pierwszy_rozdzialowy_artykul,["czy_ten_rozdzial"]=czy_ten_rozdzial,} end; return true; end; end; return nil; end; end; function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe) local odtylu=liczba_obiekt_start_spac_par; local liczba_start_naglowek;local liczba_koniec_naglowek;local naglowek;local poziom_naglowka; local liczba_start_naglowek_dalej;local liczba_koniec_naglowek_dalej;local naglowek_dalej;local poziom_naglowka_dalej; local czy_fun=false; local czy_pierwszy=nil; local liczba_koniec_naglowek_poczt=nil; while(true)do local liczba_start_naglowek_nowe;local liczba_koniec_naglowek_nowe;local naglowek_nowe;local poziom_naglowka_nowe; if(czy_dodatni==1)then local _; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,_,poziom_naglowka_nowe=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); elseif(czy_dodatni==2)then local str_lista_naglowek; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,str_lista_naglowek,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*#:;<>]+)[^%S\n]*([^\n]-)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=poziom_naglowka_nowe and (-#str_lista_naglowek) or nil; else liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^%S\n]*[^\n]-:)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and 0 or nil; end; if(not liczba_start_naglowek_nowe)then break; else poziom_naglowka_nowe=(czy_dodatni==1)and (poziom_naglowka_nowe or 2) or poziom_naglowka_nowe; local czy_tak_spisowe=(czy_dodatni==1) and true or p.CzyTamElementyNieSpisoweArtykularne(mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe),nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); if(czy_tak_spisowe)then if(not czy_pierwszy)then liczba_koniec_naglowek_poczt=liczba_koniec_naglowek_nowe; czy_pierwszy=true; end; if(liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe<liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe+1<=liczba_start_naglowek-1)then local pomiedzy_naglowkami=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_start_naglowek-1); if((pomiedzy_naglowkami)and(not mw.ustring.match(pomiedzy_naglowkami,"^%s*$"))and((czy_dodatni==1)and(poziom_naglowka_nowe>=poziom_naglowka)or(czy_dodatni~=1)))then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; elseif(liczba_start_naglowek~=liczba_koniec_naglowek_nowe)then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; if(((czy_dodatni==1)or(czy_dodatni==2))and(AnalizowanieSekcjowe)and(not czy_fun))then local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek_nowe); if(not spis_tresci)then --local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); local czy_wynik=AnalizowanieSekcjowe(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); if(czy_wynik)then return false;end; end; czy_fun=true; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; end; end; odtylu=liczba_start_naglowek_nowe; end; return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej; end function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe) local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka,liczba_start_naglowek_dalej=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,1,czy_bez_naglowka,AnalizowanieSekcjowe); ---- if((AnalizowanieSekcjowe)and(liczba_start_naglowek==false))then return nil;end; ---- local str_spacja_lub_zerowy_naglowek=function(tekst) local ile_znalezione_linie_wedlug_wzoru=0; local _,ile=mw.ustring.gsub(tekst,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[^%*#:;<>\n].-:%s*$"))or(mw.ustring.match(linia,"^%s*$")))then ile_znalezione_linie_wedlug_wzoru=ile_znalezione_linie_wedlug_wzoru+1; end; return nil; end); if(ile==ile_znalezione_linie_wedlug_wzoru)then return true;end; return nil; end; if((not liczba_start_naglowek_dalej)and(liczba_start_naglowek))then local liczba_szukaj_odtylu_tekst=liczba_start_naglowek; local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]+)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(not liczba_start_rozdzial)then while(true)do local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; if(not liczba_start_naglowek_temp)then break;end; end; end; elseif(not liczba_start_naglowek)then local liczba_szukaj_odtylu_tekst=liczba_obiekt_start_kolei_par; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]-[^'\n][^\n]-)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(liczba_start_naglowek_temp)then local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek_temp,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not mw.ustring.match(spis_naglowka_szablon,"!%s*$")and(not mw.ustring.match(spis_naglowka_szablon,"%S!")))then ---- local tak=false; local czy_w_petli=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(naglowek_temp,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do czy_w_petli=true; if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then if(numer_rodzaju_artykulu==1)then tak=true; break; end; end; end; end; if((tak)or(not czy_w_petli))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; else local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; end; end; return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka; end; function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul) local liczba_spac=0; if(liczba_start)then local liczba_start_tekst=liczba_start;local liczba_koniec_tekst;local linia; while(true)do local liczba_start_tekst_stare=liczba_start_tekst; linia=nil local liczba_szukaj_odtylu_tekst=liczba_start_tekst; liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); local czy_poczt; if(not liczba_start_tekst)then liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); czy_poczt=true; else czy_poczt=false; end; local rozdzial_dodatki=linia and mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$") or nil; if(rozdzial_dodatki)then local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then return (czy_dalej_rozdzial)and liczba_start or liczba_koniec_tekst,liczba_spac; end; end; local spacja=linia and mw.ustring.match(linia,"^%s*$") or nil; if(spacja)then liczba_spac=liczba_spac+#linia+(czy_poczt and 1 or 2); elseif((not spacja)and(linia))then local czy_spis=nil; local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true); local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; if(not spis_tresci)then liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_start_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1); liczba_start=liczba_start_rozdzial or ((mw.ustring.match(linia,"^[^\n]+:[^%S\n]*$")) and liczba_start_tekst or liczba_koniec_tekst); czy_spis=liczba_start_rozdzial and true or nil; else liczba_start=--[[spis_tresci and]] liczba_start_tekst--[[ or liczba_koniec_tekst]]; czy_spis=true; end; if(not liczba_start_rozdzial)then if(not spis_tresci)then local szablonowe_modul=require("Module:Szablonowe"); if(mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then local tak=false; local czy_okladka=nil; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then tak=true; break; end; end; end; liczba_start=tak and liczba_start_tekst or liczba_start; else liczba_start=liczba_koniec_tekst; end; else liczba_start=--[[spis_tresci and ]]liczba_start_tekst--[[ or liczba_koniec_tekst]]; end; end; return liczba_start,liczba_spac,czy_spis; elseif(not liczba_start_tekst)then return (czy_dalej_rozdzial)and liczba_start or math.min(liczba_pierwszy_rozdzialowy_artykul or 1,liczba_start),liczba_spac,nil; end; end; end; return liczba_start,liczba_spac,nil; end; function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa) local liczba_spisu=liczba_spisowa; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu() while(true)do local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); --- if((liczba_linki_nierozdzialowe_szablonu) and( (przed_tekst=="") or(mw.ustring.match(przed_tekst,"^[%p%s%d%.]*$")) ) )then liczba_spisu=liczba_linki_nierozdzialowe_szablonu; if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); ---- ---- if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(dalszy_tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon_obiekt_temp,szablon_kod_temp=obiekt_szablon,kod_szablon; for szablon,obiekt,kod in iterator do local czy_znajdz=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_znajdz)then local czy_tekst=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(szablon_obiekt_temp,szablon_kod_temp).."[%p%s%d%.]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_tekst)then if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; end; end; else return liczba_spisowa,false; end; szablon_obiekt_temp,szablon_kod_temp=obiekt,kod; end; end; return liczba_spisowa,false; end; end; else return liczba_spisowa,false; end; end; end; function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=nil; local techniczne_modul=require("Module:Techniczne"); local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,1,nil,false,function(naglowek) naglowek=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(naglowek); if(mw.ustring.match(naglowek,"^"..tab_wzor[1].."$"))then return true; end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not liczba_rozdzial_start)then liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"("..tab_wzor[1]..")",liczba_rozdzial_koniec,nil,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)then tak=true;end; end; if(liczba_rozdzial_start)then local liczba_rozdzial_start2,liczba_rozdzial_koniec2; if(not tak)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); else local liczba_rozdzial_start3,liczba_rozdzial_koniec3=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local liczba_rozdzial_start4,liczba_rozdzial_koniec4=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"[^%*#;:<>\n]+[^\n]+",liczba_rozdzial_koniec,nil,true,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- if((liczba_rozdzial_start3)and(liczba_rozdzial_start4))then if(liczba_rozdzial_start3<liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; end; elseif(liczba_rozdzial_start3)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; elseif(liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=nil,nil; end; end; ----- local str_bibliografia=mw.ustring.sub(tekst,liczba_rozdzial_koniec+1,(liczba_rozdzial_start2 and (liczba_rozdzial_start2-1) or #tekst)); if((not str_bibliografia)or(str_bibliografia==""))then return tekst;end; local tekst1=mw.ustring.sub(tekst,1,liczba_rozdzial_koniec); local tekst2=liczba_rozdzial_start2 and mw.ustring.sub(tekst,liczba_rozdzial_start2,#tekst) or ""; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local techniczne_modul=require("Module:Techniczne"); str_bibliografia=mw.ustring.gsub(str_bibliografia,"([^\n]+)",function(linia) local obiekt,kod,dalszy_tekst=mw.ustring.match(linia,"^[%*:;#<>]+%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."([^\n]*)$"); if((obiekt)and(kod)and(dalszy_tekst))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_okladka)and(czy_element_spisu)and(numer_rodzaju_artykulu==1))then return linia; end; end; linia=dalszy_tekst or linia; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if(((tab_wzor[2])and((obiekt=="LINKW")or(obiekt=="LINKZ")))or(obiekt=="SZABLON"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if(czy_element_spisu)then return linia; elseif(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((stronicowyparser_obiekty_modul.szablony_przypisowe[nazwa_szablonu])or(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu]))then return linia; else return ""; end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return ""; end); return wynik; end; end; end; return ""; end); tekst=tekst1..str_bibliografia..tekst2; end; return tekst; end; function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_uruchomiony_analizator_spisu_rzeczy_strony=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); if(not czy_uruchomiony_analizator_spisu_rzeczy_strony)then return nil;end; ---- local liczba_start=nil;local liczba_koniec=nil; ---- local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); ----- local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(); ---- local liczba_obiekt_koniec=1; local liczba_pierwszy_rozdzialowy_artykul=nil; local liczba_nie_okladka_artykul=nil; local tab_nazwa_spisow_przekierowaniowych={}; local liczba_start_rozdzial=1; local liczba_obiekt_start_poprz=nil; local liczba_obiekt_koniec_poprz=nil; local liczba_nie_okladka_artykul_koniec=nil; local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*"; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false); if(liczba_start_szablon)then liczba_obiekt_koniec=liczba_koniec_szablon; --local czy_rozdzial_dodatni=((lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local czy_rozdzial_dodatni; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=((czy_dobry_obiekt)and(((lista_szablon~="")and((przerwa_szablon=="")or((mw.ustring.match(lista_szablon,"^:"))and((przerwa_szablon==">")or(przerwa_szablon=="<")))or(not mw.ustring.match(lista_szablon,"^:"))))or((lista_szablon=="")and(przerwa_szablon=="")and(not mw.ustring.match(dalszy_tekst,"^>"))))); czy_listy=czy_listy or ((czy_dobry_obiekt)and(lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_element_spisu)or(czy_okladka))then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) local czy_element_spisu_temp;local numer_rodzaju_artykulu_temp;local czy_podrecznik_temp;local czy_okladka_temp; local tak=false; for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu_temp)and(not czy_okladka_temp))then if(numer_rodzaju_artykulu_temp==1)then tak=true; break; end; end; end; end; if(tak)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp; end; end; liczba_pierwszy_rozdzialowy_artykul=(not liczba_pierwszy_rozdzialowy_artykul)and(czy_element_spisu and liczba_obiekt_start or nil) or liczba_pierwszy_rozdzialowy_artykul; liczba_nie_okladka_artykul=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and(dalszy_tekst=="")))))) and liczba_obiekt_start or liczba_nie_okladka_artykul; liczba_nie_okladka_artykul_koniec=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and (dalszy_tekst=="")))))) and liczba_obiekt_koniec or liczba_nie_okladka_artykul_koniec; ---- if((czy_element_spisu)and(numer_rodzaju_artykulu==1)and(czy_podrecznik)and(not czy_okladka))then local czy_bez_naglowka=nil; local liczba_obiekt_start_nowe=liczba_nie_okladka_artykul or liczba_obiekt_start; local liczba_obiekt_koniec_nowe=liczba_nie_okladka_artykul_koniec or liczba_obiekt_koniec; local liczba_start_naglowek,liczba_koniec_naglowek,naglowek=nil,nil,nil; local czy_ten_rozdzial=true; local liczba_obiekt_start_nowe_temp=liczba_obiekt_start_nowe; local liczba_spis_tresci_start,liczba_spis_tresci_koniec,naglowka_dodatni_start,spis_naglowka_dodatni_stare_start,poziom_naglowka_start=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_obiekt_start_nowe,liczba_start_rozdzial,true,function(naglowek) if(p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek))then return true;end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local czy_zeruj=(not liczba_spis_tresci_start)and true or false; liczba_obiekt_start_nowe=liczba_spis_tresci_start or liczba_obiekt_start_nowe; local tab_zmienne={ liczba_nie_okladka_artykul=liczba_nie_okladka_artykul, liczba_pierwszy_rozdzialowy_artykul=liczba_pierwszy_rozdzialowy_artykul, czy_ten_rozdzial=czy_ten_rozdzial, }; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; if(not czy_ten_rozdzial)then if(liczba_obiekt_start~=liczba_obiekt_start_nowe_temp)then liczba_start_rozdzial=liczba_obiekt_start_nowe_temp; liczba_obiekt_start_nowe=liczba_obiekt_start; czy_ten_rozdzial=true; tab_zmienne.czy_ten_rozdzial=czy_ten_rozdzial; liczba_start_naglowek,liczba_koniec_naglowek,naglowek=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; end; end; ----- liczba_start_naglowek=liczba_spis_tresci_start or liczba_start_naglowek; if(((not czy_okladka)or((czy_okladka)and(lista_szablon~=""))or(liczba_start_naglowek))and(czy_ten_rozdzial))then ---- czy_bez_naglowka=((not liczba_start_naglowek)or((liczba_obiekt_koniec_poprz or 1)<=(liczba_start_rozdzial or 1))) and true or false; ---- if(liczba_start_naglowek)then local liczba_przed_rozdzialem;local czy_znajdz; liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start_naglowek); local odtylu_dalej=--[[liczba_spis_tresci or]] liczba_start_naglowek; local liczba_start_naglowek_przed=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu_dalej,liczba_start_rozdzial,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_start_naglowek_przed)then if(liczba_przed_rozdzialem>=liczba_start_naglowek_przed)then liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; else liczba_start=liczba_spis_tresci; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; end; else liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; else liczba_start=liczba_start_sugerowane; end; end; else local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,2,czy_bez_naglowka,function(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek_nowe)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek_nowe+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_obiekt_start_nowe-1); str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then return true; end; end; return nil; end); if(liczba_start_naglowek)then liczba_obiekt_start_nowe=liczba_start_naglowek; end; --[[]] local liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_obiekt_start_nowe); liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; end; end; break; else liczba_start_rozdzial=liczba_obiekt_koniec_nowe; liczba_nie_okladka_artykul_koniec=nil; end; liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; else liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; end; end; else break; end; end; if(not liczba_start)then return "";end; local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*:#;<>]?)([^\n]-)"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_obiekt_start_od_tylu,liczba_start,true); ---- if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=(czy_dobry_obiekt)and((lista_szablon~="")or((lista_szablon=="")and(przerwa_szablon==""))); local czy_listy=czy_listy or (czy_dobry_obiekt)and((lista_szablon=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_koniec=liczba_koniec_szablon; local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu=nil;local numer_rodzaju_artykulu=nil;local czy_podrecznik=nil; if(liczba_start<=liczba_obiekt_start)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(not czy_element_spisu)then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; --if(((not czy_spis_tresci)and(lista_szablon~=""))or((czy_spis_tresci)and((lista_szablon=="")and(przerwa_szablon==""))))then czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---elseif((lista_szablon=="")and(przerwa_szablon==""))then ---czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---end; if(czy_element_spisu)then break;end; end; end; end; end; if(czy_element_spisu)then local function IleKoniec() while(true)do local poczatek_nierozdzalowe=liczba_obiekt_koniec; local liczba_start_nieszablon_nielink_nierozdzialowa,liczba_koniec_nieszablon_nielink_nierozdzialowa,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*:;#<>'\n]+[^\n]*)",poczatek_nierozdzalowe,nil,false) if(liczba_start_nieszablon_nielink_nierozdzialowa)then local rozdzial_dodatki=mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$"); if(rozdzial_dodatki)then local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; end; end; local czy_spacje=mw.ustring.match(linia,"^%s*$"); if(not czy_spacje)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; elseif(czy_spacje)then liczba_obiekt_koniec=liczba_koniec_nieszablon_nielink_nierozdzialowa; --else -- liczba_koniec=#tekst_rozwiniety_calego_artykulu; -- return; end; else liczba_koniec=#tekst_rozwiniety_calego_artykulu; break; end; end; end; IleKoniec(); break; end; end; else break; end; end; if(liczba_koniec)then local koniec_dodatnie_rozdzialy=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial_nazwa,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,koniec_dodatnie_rozdzialy,liczba_start,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)and(liczba_rozdzial_start>=liczba_koniec)then koniec_dodatnie_rozdzialy=liczba_rozdzial_start; local start=1; while(true)do local start_szablon,koniec_szablon,obiekt_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(rozdzial,szablon_normy_kodowania_szablonu,start); local koniec_obiekt;local kod_obiekt;local obiekt=nil; if(start_szablon)then if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then --koniec_obiekt=koniec_szablon; local kod=kod_szablon; local obiekt=obiekt_szablon; local kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(czy_element)then liczba_koniec=liczba_rozdzial_koniec; break; end; end; start=koniec_szablon; else break; end; end; else break; end; end; end; if(not liczba_koniec)then return "";end; if(liczba_start>=liczba_koniec)then return "";end; --- Licencja ---- local licencja_koniec,szablon_licencja=p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_koniec,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((licencja_koniec)and(licencja_koniec>=liczba_koniec))then liczba_koniec=licencja_koniec; end; ----- local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); ----- for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); end; --mw.log(tekst) --- Licencja ---- --mw.log(liczba_start,liczba_koniec,"TYTANw",pelna_nazwa_spisu_tresci_szablonowa) --mw.log("TYTAN1",tekst,"TYTAN2") --return nil; --local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); return tekst; end; return p; 6p7dj38ay5rtp7zk6kocm553h1yyguy 544750 544749 2026-05-31T13:11:57Z Persino 2851 544750 Scribunto text/plain local p={}; function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=false; local techniczne_modul=require("Module:Techniczne"); linia=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(linia); for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci) do tak=tak or (((not spacje_na_poczatku) or (not mw.ustring.match(linia,"^%s+"))) and (mw.ustring.match(linia,"^"..p_wzor.."$"))); if(tak)then return true;end; end; return nil; end; function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local techniczne_modul=require("Module:Techniczne"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^\n]+)",liczba_od,liczba_do,true); if(liczba_start_rozdzial)then rozdzial=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(rozdzial); local czy_zerowy_spis_rzeczy; for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci)do czy_zerowy_spis_rzeczy=mw.ustring.match(rozdzial,p_wzor); if(czy_zerowy_spis_rzeczy)then break;end; end; if((czy_zerowy_spis_rzeczy)and(not mw.ustring.match(rozdzial,"^%s+")))then return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial; else liczba_od=liczba_start_rozdzial; end; else return; end; end; return nil; end; function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return;end; return true; end); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa)and(zawartosc))then if(nazwa=="center")then return true; end; end; end; end; function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"("..wzor..")",liczba_od,liczba_do,jak); if(liczba_start_rozdzial)then if((not mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))and(not mw.ustring.match(linia,"^[%*#:;<>]")))then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon,obiekt,kod,poziom_iteracji=iterator(); local wynik=((szablon)and(obiekt)and(kod))and p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(not wynik)then local rozdzial,czy_standardowe_rozdzialy=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((rozdzial)and(czy_standardowe_rozdzialy))then return liczba_start_rozdzial,liczba_koniec_rozdzial,linia; end; end; end; if(jak)then liczba_od=liczba_start_rozdzial;else liczba_od=liczba_koniec_rozdzial;end; else return; end; end; return nil; end; function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA,nil,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych); if(not kom)then local tab=((tab_2 and tab_2[1]) and tab_2 or nil); if(tab)then if(numer_rodzaju_artykulu==1)then local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false); local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s")))) local function StronyWstepu(artykul) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=true; for _,wzor in ipairs(stronicowyparser_obiekty_modul.artykularne_niespisowe) do tak=tak and (not mw.ustring.match(artykul,wzor)); if(not tak)then return tak;end; end; return tak; end; if((czy_glowny_spis_tresci)and(artykul==""))then return false,numer_rodzaju_artykulu,czy_podrecznik,false; else if((czy_usun_okladka)--[[or(numer_rodzaju_artykulu>1)]]or(--[[(numer_rodzaju_artykulu==1)and]](artykul~="")and(StronyWstepu(artykul))))then return true,numer_rodzaju_artykulu,czy_podrecznik,false; else return true,numer_rodzaju_artykulu,czy_podrecznik,true; end; end; else return true,numer_rodzaju_artykulu,--[[czy_podrecznik]]false,false; end; end; end; return false,nil; end; function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(obiekt=="SZABLON")then local szablonowe_modul=require("Module:Szablonowe"); local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) ---- if(nazwa_szablonu=="SpisTreści")then return true,1; else local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]; if(tabela_spisu)then local parametr_linku; if(tabela_spisu[1]==true)then local numer_link=tabela_spisu["numer_link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; else local numer_link=tabela_spisu["link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; end; if(parametr_linku)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(parametr_linku,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; end; end; end; end; end); if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; return false; end; function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); if((not czy_element_spisu)and(not numer_rodzaju_artykulu))then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); end; return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; function p.SzukanieNaPodstawieWzoru(str,wzor,liczba,liczba2,czy_od_tylu,jak) if(not czy_od_tylu)then if((liczba)and(liczba2)and(liczba>liczba2))then return;end; local a,b,c,d,e,f,g,h,i,j,k,l=mw.ustring.find(str,wzor,liczba); if((a)and(b)and(a>b))then return;end; if((not liczba2)or(b<=liczba2))then return a,b,c,d,e,f,g,h,i,j,k,l; end; return nil; else if((liczba)and(liczba2)and(liczba<liczba2))then return;end; local liczba_start=liczba2 or 1; local a,b,c,d,e,f,g,h,i,j,k,l=nil,nil,nil,nil,nil,nil,nil; while(true)do local a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1=mw.ustring.find(str,wzor,liczba_start); if((a1)and(b1)and(a1>b1))then return;end; if((not b1)or((b1)and(b1>liczba)))then return a,b,c,d,e,f,g,h,i,j,k,l; elseif((b1)and(b1==liczba))then return a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; end; a,b,c,d,e,f,g,h,i,j,k,l=a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; if(not jak)then if(a1==b1)then liczba_start=b1+1; else liczba_start=b1; end; else liczba_start=b1+1; end; end; end; end; function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); while(true)do local liczba_start_szablon,liczba_koniec_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,szablon_normy_kodowania_szablonu,liczba_obiekt_start_od_tylu,liczba_start,true); if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local obiekt="SZABLON"; local kod=kod_szablon and tonumber(kod_szablon) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; ---- local liczba_koniec_szablon,norma_wzoru=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if(nazwa_szablonu=="Licencja")then return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end; end); if(liczba_koniec_szablon)then return liczba_koniec_szablon,norma_wzoru; end; elseif(not liczba_start_szablon)then return nil; end; end; end; function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba,liczba2,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local liczba_start_szablon;local liczba_koniec_szablon; local liczba_wys_szablon=liczba; local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); local spis_naglowka_szablon; local spis_naglowka_szablon_stare; while(true)do local kod; liczba_start_szablon,liczba_koniec_szablon,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_szablonu,liczba_wys_szablon,liczba2,czy_od_tylu); if(liczba_start_szablon)then if(not czy_od_tylu)then liczba_wys_szablon=liczba_koniec_szablon;else liczba_wys_szablon=liczba_start_szablon;end; local obiekt="SZABLON"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local liczba_szablon_centrowany=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(liczba_szablon_centrowany)then local naglowek=tabela_parametrow_szablonu[liczba_szablon_centrowany]; if(naglowek)then if(not mw.ustring.match(naglowek,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_szablon_stare=naglowek; spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_szablon))then return false; end; else spis_naglowka_szablon=naglowek; return false; end; end; end; end; return true; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return true; end); if(not wynik)then break; end; else break; end; end; local liczba_start_znacznik;local liczba_koniec_znacznik; local liczba_wys_znacznik=liczba; local norma_kodowania_znacznika=szablonowe_modul.NormaWzoruKodowaniaTekstu("ZNACZNIK"); local spis_naglowka_znacznik; local spis_naglowka_znacznik_stare; while(true)do local kod; liczba_start_znacznik,liczba_koniec_znacznik,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_znacznika,liczba_wys_znacznik,liczba2,czy_od_tylu); if(liczba_start_znacznik)then if(not czy_od_tylu)then liczba_wys_znacznik=liczba_koniec_znacznik;else liczba_wys_znacznik=liczba_start_znacznik;end; local obiekt="ZNACZNIK"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then if(zawartosc)then if(not mw.ustring.match(zawartosc,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_znacznik_stare=zawartosc; spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(zawartosc,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_znacznik))then break; end; else spis_naglowka_znacznik=zawartosc; break; end; end; end; end; else break; end; end; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local liczba_start_dodatni;local liczba_koniec_dodatni; local liczba_wys_dodatni=liczba; local spis_naglowka_dodatni; local spis_naglowka_dodatni_stare; local spis_naglowka_poziom; while(true)do local naglowek; liczba_start_dodatni,liczba_koniec_dodatni,naglowek=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"(=+[^\n]*[^=\n][^\n]*=+)[^%S\n]*",liczba_wys_dodatni,liczba2,czy_od_tylu); if(not liczba_start_dodatni)then break;end; if(not czy_od_tylu)then liczba_wys_dodatni=liczba_koniec_dodatni;else liczba_wys_dodatni=liczba_start_dodatni;end; local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek); if(naglowek)then if(czy_spis_tresci)then spis_naglowka_dodatni_stare=naglowek; spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; spis_naglowka_poziom=poziom_naglowka; if(czy_spis_tresci(spis_naglowka_dodatni))then break; end; else spis_naglowka_dodatni=naglowek; spis_naglowka_poziom=poziom_naglowka; break; end; end; end; if((liczba_start_szablon)or(liczba_start_znacznik)or(liczba_start_dodatni))then local _max_min; if(czy_od_tylu)then _max_min=math.max(math.max(liczba_start_szablon or 0,liczba_start_znacznik or 0),liczba_start_dodatni or 0); else _max_min=math.min(math.min(liczba_start_szablon or #tekst_rozwiniety_calego_artykulu,liczba_start_znacznik or #tekst_rozwiniety_calego_artykulu),liczba_start_dodatni or #tekst_rozwiniety_calego_artykulu); end; if((liczba_start_szablon)and(_max_min==liczba_start_szablon))then local spis_naglowka_szablon_stare=spis_naglowka_szablon_stare or spis_naglowka_szablon; if((not czy_spis_tresci)and(spis_naglowka_szablon))then spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; end; return liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon,spis_naglowka_szablon_stare,nil; elseif((liczba_start_znacznik)and(_max_min==liczba_start_znacznik))then local spis_naglowka_znacznik_stare=spis_naglowka_znacznik_stare or spis_naglowka_znacznik; if((not czy_spis_tresci)and(spis_naglowka_znacznik))then spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_znacznik,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; end; return liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik,spis_naglowka_znacznik_stare,nil; elseif((liczba_start_dodatni)and(_max_min==liczba_start_dodatni))then local spis_naglowka_dodatni_stare=spis_naglowka_dodatni_stare or spis_naglowka_dodatni; if((not czy_spis_tresci)and(spis_naglowka_dodatni))then spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_dodatni,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; end; return liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_poziom; end; end; return nil; end; function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy; local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local linki=function(zawartosc) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="LINKW")or(obiekt=="LINKZ"))then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; elseif(obiekt=="SZABLON")then local szablon,obiekt,kod,dalszy_tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) or(stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) )then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(tab_szablon_link_intelignetny)then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; end); return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; if(obiekt=="SZABLON")then local szablon,obiekt,kod=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return nil;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return nil;end; local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end); return szablon,obiekt,kod; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(zawartosc)then if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; return nil; end; end; function p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_spis,liczba_start_tekst,liczba2,czy_od_tylu) local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; local a1;local a2;local a3;local a4;local a5;local a6;local a7;local a8;local a9;local a10; local dlugosc_tekstu_wyszukiwanego=#tekst_rozwiniety_calego_artykulu; if(not czy_od_tylu)then if((not liczba_start_tekst)or(liczba_start_tekst==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==1))and((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; end; end; end; else if(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego))and((not liczba2)or(liczba2==1)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; end; end; end; end; return liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10; end; function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do --czy_w_petli=true; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then return true; elseif((not czy_element_spisu)and(numer_rodzaju_artykulu))then tak=true; elseif(czy_okladka)then tak=true; end; end; return (not tak); end; function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek+1,liczba_obiekt_start_nowe-1); if((mw.ustring.match(str,"^%s*'+(.+)'+%s*$")) or(mw.ustring.match(str,"^[%*#:;<>]+.*$") or(mw.ustring.match(str,"^[%s%p%w]*$"))) )then return nil;end; local ile_punktowanych=0; local szablonowe_modul=require("Module:Szablonowe"); local _,ile=mw.ustring.gsub(str,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[%*#;:<>]"))or(mw.ustring.match(linia,"^%s*$")))then ile_punktowanych=ile_punktowanych+1; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(numer_rodzaju_artykulu>2))then ile_punktowanych=ile_punktowanych+1; break; end; end; end; end); if(ile_punktowanych>=ile)then return nil; end; str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then if(czy_zeruj)then tab_zmienne.liczba_nie_okladka_artykul=nil; tab_zmienne.liczba_pierwszy_rozdzialowy_artykul=nil; tab_zmienne.czy_ten_rozdzial=nil; --tab_zmienne={["liczba_nie_okladka_artykul"]=liczba_nie_okladka_artykul,["liczba_pierwszy_rozdzialowy_artykul"]=liczba_pierwszy_rozdzialowy_artykul,["czy_ten_rozdzial"]=czy_ten_rozdzial,} end; return true; end; end; return nil; end; end; function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe) local odtylu=liczba_obiekt_start_spac_par; local liczba_start_naglowek;local liczba_koniec_naglowek;local naglowek;local poziom_naglowka; local liczba_start_naglowek_dalej;local liczba_koniec_naglowek_dalej;local naglowek_dalej;local poziom_naglowka_dalej; local czy_fun=false; local czy_pierwszy=nil; local liczba_koniec_naglowek_poczt=nil; while(true)do local liczba_start_naglowek_nowe;local liczba_koniec_naglowek_nowe;local naglowek_nowe;local poziom_naglowka_nowe; if(czy_dodatni==1)then local _; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,_,poziom_naglowka_nowe=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); elseif(czy_dodatni==2)then local str_lista_naglowek; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,str_lista_naglowek,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*#:;<>]+)[^%S\n]*([^\n]-)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=poziom_naglowka_nowe and (-#str_lista_naglowek) or nil; else liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^%S\n]*[^\n]-:)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and 0 or nil; end; if(not liczba_start_naglowek_nowe)then break; else poziom_naglowka_nowe=(czy_dodatni==1)and (poziom_naglowka_nowe or 2) or poziom_naglowka_nowe; local czy_tak_spisowe=(czy_dodatni==1) and true or p.CzyTamElementyNieSpisoweArtykularne(mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe),nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); if(czy_tak_spisowe)then if(not czy_pierwszy)then liczba_koniec_naglowek_poczt=liczba_koniec_naglowek_nowe; czy_pierwszy=true; end; if(liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe<liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe+1<=liczba_start_naglowek-1)then local pomiedzy_naglowkami=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_start_naglowek-1); if((pomiedzy_naglowkami)and(not mw.ustring.match(pomiedzy_naglowkami,"^%s*$"))and((czy_dodatni==1)and(poziom_naglowka_nowe>=poziom_naglowka)or(czy_dodatni~=1)))then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; elseif(liczba_start_naglowek~=liczba_koniec_naglowek_nowe)then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; if(((czy_dodatni==1)or(czy_dodatni==2))and(AnalizowanieSekcjowe)and(not czy_fun))then local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek_nowe); if(not spis_tresci)then --local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); local czy_wynik=AnalizowanieSekcjowe(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); if(czy_wynik)then return false;end; end; czy_fun=true; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; end; end; odtylu=liczba_start_naglowek_nowe; end; return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej; end function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe) local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka,liczba_start_naglowek_dalej=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,1,czy_bez_naglowka,AnalizowanieSekcjowe); ---- if((AnalizowanieSekcjowe)and(liczba_start_naglowek==false))then return nil;end; ---- local str_spacja_lub_zerowy_naglowek=function(tekst) local ile_znalezione_linie_wedlug_wzoru=0; local _,ile=mw.ustring.gsub(tekst,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[^%*#:;<>\n].-:%s*$"))or(mw.ustring.match(linia,"^%s*$")))then ile_znalezione_linie_wedlug_wzoru=ile_znalezione_linie_wedlug_wzoru+1; end; return nil; end); if(ile==ile_znalezione_linie_wedlug_wzoru)then return true;end; return nil; end; if((not liczba_start_naglowek_dalej)and(liczba_start_naglowek))then local liczba_szukaj_odtylu_tekst=liczba_start_naglowek; local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]+)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(not liczba_start_rozdzial)then while(true)do local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; if(not liczba_start_naglowek_temp)then break;end; end; end; elseif(not liczba_start_naglowek)then local liczba_szukaj_odtylu_tekst=liczba_obiekt_start_kolei_par; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]-[^'\n][^\n]-)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(liczba_start_naglowek_temp)then local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek_temp,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not mw.ustring.match(spis_naglowka_szablon,"!%s*$")and(not mw.ustring.match(spis_naglowka_szablon,"%S!")))then ---- local tak=false; local czy_w_petli=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(naglowek_temp,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do czy_w_petli=true; if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then if(numer_rodzaju_artykulu==1)then tak=true; break; end; end; end; end; if((tak)or(not czy_w_petli))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; else local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; end; end; return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka; end; function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul) local liczba_spac=0; if(liczba_start)then local liczba_start_tekst=liczba_start;local liczba_koniec_tekst;local linia; while(true)do local liczba_start_tekst_stare=liczba_start_tekst; linia=nil local liczba_szukaj_odtylu_tekst=liczba_start_tekst; liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); local czy_poczt; if(not liczba_start_tekst)then liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); czy_poczt=true; else czy_poczt=false; end; local rozdzial_dodatki=linia and mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$") or nil; if(rozdzial_dodatki)then local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then return (czy_dalej_rozdzial)and liczba_start or liczba_koniec_tekst,liczba_spac; end; end; local spacja=linia and mw.ustring.match(linia,"^%s*$") or nil; if(spacja)then liczba_spac=liczba_spac+#linia+(czy_poczt and 1 or 2); elseif((not spacja)and(linia))then local czy_spis=nil; local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true); local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; if(not spis_tresci)then liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_start_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1); liczba_start=liczba_start_rozdzial or ((mw.ustring.match(linia,"^[^\n]+:[^%S\n]*$")) and liczba_start_tekst or liczba_koniec_tekst); czy_spis=liczba_start_rozdzial and true or nil; else liczba_start=--[[spis_tresci and]] liczba_start_tekst--[[ or liczba_koniec_tekst]]; czy_spis=true; end; if(not liczba_start_rozdzial)then if(not spis_tresci)then local szablonowe_modul=require("Module:Szablonowe"); if(mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then local tak=false; local czy_okladka=nil; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then tak=true; break; end; end; end; liczba_start=tak and liczba_start_tekst or liczba_start; else liczba_start=liczba_koniec_tekst; end; else liczba_start=--[[spis_tresci and ]]liczba_start_tekst--[[ or liczba_koniec_tekst]]; end; end; return liczba_start,liczba_spac,czy_spis; elseif(not liczba_start_tekst)then return (czy_dalej_rozdzial)and liczba_start or math.min(liczba_pierwszy_rozdzialowy_artykul or 1,liczba_start),liczba_spac,nil; end; end; end; return liczba_start,liczba_spac,nil; end; function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa) local liczba_spisu=liczba_spisowa; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu() while(true)do local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); --- if((liczba_linki_nierozdzialowe_szablonu) and( (przed_tekst=="") or(mw.ustring.match(przed_tekst,"^[%p%s%d%.]*$")) ) )then liczba_spisu=liczba_linki_nierozdzialowe_szablonu; if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); ---- ---- if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(dalszy_tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon_obiekt_temp,szablon_kod_temp=obiekt_szablon,kod_szablon; for szablon,obiekt,kod in iterator do local czy_znajdz=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_znajdz)then local czy_tekst=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(szablon_obiekt_temp,szablon_kod_temp).."[%p%s%d%.]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_tekst)then if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; end; end; else return liczba_spisowa,false; end; szablon_obiekt_temp,szablon_kod_temp=obiekt,kod; end; end; return liczba_spisowa,false; end; end; else return liczba_spisowa,false; end; end; end; function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=nil; local techniczne_modul=require("Module:Techniczne"); local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,1,nil,false,function(naglowek) naglowek=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(naglowek); if(mw.ustring.match(naglowek,"^"..tab_wzor[1].."$"))then return true; end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not liczba_rozdzial_start)then liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"("..tab_wzor[1]..")",liczba_rozdzial_koniec,nil,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)then tak=true;end; end; if(liczba_rozdzial_start)then local liczba_rozdzial_start2,liczba_rozdzial_koniec2; if(not tak)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); else local liczba_rozdzial_start3,liczba_rozdzial_koniec3=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local liczba_rozdzial_start4,liczba_rozdzial_koniec4=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"[^%*#;:<>\n]+[^\n]+",liczba_rozdzial_koniec,nil,true,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- if((liczba_rozdzial_start3)and(liczba_rozdzial_start4))then if(liczba_rozdzial_start3<liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; end; elseif(liczba_rozdzial_start3)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; elseif(liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=nil,nil; end; end; ----- local str_bibliografia=mw.ustring.sub(tekst,liczba_rozdzial_koniec+1,(liczba_rozdzial_start2 and (liczba_rozdzial_start2-1) or #tekst)); if((not str_bibliografia)or(str_bibliografia==""))then return tekst;end; local tekst1=mw.ustring.sub(tekst,1,liczba_rozdzial_koniec); local tekst2=liczba_rozdzial_start2 and mw.ustring.sub(tekst,liczba_rozdzial_start2,#tekst) or ""; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local techniczne_modul=require("Module:Techniczne"); str_bibliografia=mw.ustring.gsub(str_bibliografia,"([^\n]+)",function(linia) local obiekt,kod,dalszy_tekst=mw.ustring.match(linia,"^[%*:;#<>]+%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."([^\n]*)$"); if((obiekt)and(kod)and(dalszy_tekst))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_okladka)and(czy_element_spisu)and(numer_rodzaju_artykulu==1))then return linia; end; end; linia=dalszy_tekst or linia; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if(((tab_wzor[2])and((obiekt=="LINKW")or(obiekt=="LINKZ")))or(obiekt=="SZABLON"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if(czy_element_spisu)then return linia; elseif(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((stronicowyparser_obiekty_modul.szablony_przypisowe[nazwa_szablonu])or(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu]))then return linia; else return ""; end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return ""; end); return wynik; end; end; end; return ""; end); tekst=tekst1..str_bibliografia..tekst2; end; return tekst; end; function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_uruchomiony_analizator_spisu_rzeczy_strony=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); if(not czy_uruchomiony_analizator_spisu_rzeczy_strony)then return nil;end; ---- local liczba_start=nil;local liczba_koniec=nil; ---- local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); ----- local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(); ---- local liczba_obiekt_koniec=1; local liczba_pierwszy_rozdzialowy_artykul=nil; local liczba_nie_okladka_artykul=nil; local tab_nazwa_spisow_przekierowaniowych={}; local liczba_start_rozdzial=1; local liczba_obiekt_start_poprz=nil; local liczba_obiekt_koniec_poprz=nil; local liczba_nie_okladka_artykul_koniec=nil; local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*"; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false); if(liczba_start_szablon)then liczba_obiekt_koniec=liczba_koniec_szablon; --local czy_rozdzial_dodatni=((lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local czy_rozdzial_dodatni; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=((czy_dobry_obiekt)and(((lista_szablon~="")and((przerwa_szablon=="")or((mw.ustring.match(lista_szablon,"^:"))and((przerwa_szablon==">")or(przerwa_szablon=="<")))or(not mw.ustring.match(lista_szablon,"^:"))))or((lista_szablon=="")and(przerwa_szablon=="")and(not mw.ustring.match(dalszy_tekst,"^>"))))); czy_listy=czy_listy or ((czy_dobry_obiekt)and(lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_element_spisu)or(czy_okladka))then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) local czy_element_spisu_temp;local numer_rodzaju_artykulu_temp;local czy_podrecznik_temp;local czy_okladka_temp; local tak=false; for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu_temp)and(not czy_okladka_temp))then if(numer_rodzaju_artykulu_temp==1)then tak=true; break; end; end; end; end; if(tak)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp; end; end; liczba_pierwszy_rozdzialowy_artykul=(not liczba_pierwszy_rozdzialowy_artykul)and(czy_element_spisu and liczba_obiekt_start or nil) or liczba_pierwszy_rozdzialowy_artykul; liczba_nie_okladka_artykul=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and(dalszy_tekst=="")))))) and liczba_obiekt_start or liczba_nie_okladka_artykul; liczba_nie_okladka_artykul_koniec=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and (dalszy_tekst=="")))))) and liczba_obiekt_koniec or liczba_nie_okladka_artykul_koniec; ---- if((czy_element_spisu)and(numer_rodzaju_artykulu==1)and(czy_podrecznik)and(not czy_okladka))then local czy_bez_naglowka=nil; local liczba_obiekt_start_nowe=liczba_nie_okladka_artykul or liczba_obiekt_start; local liczba_obiekt_koniec_nowe=liczba_nie_okladka_artykul_koniec or liczba_obiekt_koniec; local liczba_start_naglowek,liczba_koniec_naglowek,naglowek=nil,nil,nil; local czy_ten_rozdzial=true; local liczba_obiekt_start_nowe_temp=liczba_obiekt_start_nowe; local liczba_spis_tresci_start,liczba_spis_tresci_koniec,naglowka_dodatni_start,spis_naglowka_dodatni_stare_start,poziom_naglowka_start=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_obiekt_start_nowe,liczba_start_rozdzial,true,function(naglowek) if(p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek))then return true;end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local czy_zeruj=(not liczba_spis_tresci_start)and true or false; liczba_obiekt_start_nowe=liczba_spis_tresci_start or liczba_obiekt_start_nowe; local tab_zmienne={ liczba_nie_okladka_artykul=liczba_nie_okladka_artykul, liczba_pierwszy_rozdzialowy_artykul=liczba_pierwszy_rozdzialowy_artykul, czy_ten_rozdzial=czy_ten_rozdzial, }; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; if(not czy_ten_rozdzial)then if(liczba_obiekt_start~=liczba_obiekt_start_nowe_temp)then liczba_start_rozdzial=liczba_obiekt_start_nowe_temp; liczba_obiekt_start_nowe=liczba_obiekt_start; czy_ten_rozdzial=true; tab_zmienne.czy_ten_rozdzial=czy_ten_rozdzial; liczba_start_naglowek,liczba_koniec_naglowek,naglowek=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; end; end; ----- liczba_start_naglowek=( (not liczba_spis_tresci_start) or((poziom_naglowka_start)and(poziom_naglowka))and( ((poziom_naglowka_start>0)and(poziom_naglowka<=0)) or((poziom_naglowka_start<=0)and(poziom_naglowka<=0)and(poziom_naglowka_start>=poziom_naglowka)) or((poziom_naglowka_start>0)and(poziom_naglowka>0)and(poziom_naglowka_start<=poziom_naglowka)) ) ) and liczba_spis_tresci_start or liczba_start_naglowek; if(((not czy_okladka)or((czy_okladka)and(lista_szablon~=""))or(liczba_start_naglowek))and(czy_ten_rozdzial))then ---- czy_bez_naglowka=((not liczba_start_naglowek)or((liczba_obiekt_koniec_poprz or 1)<=(liczba_start_rozdzial or 1))) and true or false; ---- if(liczba_start_naglowek)then local liczba_przed_rozdzialem;local czy_znajdz; liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start_naglowek); local odtylu_dalej=--[[liczba_spis_tresci or]] liczba_start_naglowek; local liczba_start_naglowek_przed=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu_dalej,liczba_start_rozdzial,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_start_naglowek_przed)then if(liczba_przed_rozdzialem>=liczba_start_naglowek_przed)then liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; else liczba_start=liczba_spis_tresci; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; end; else liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; else liczba_start=liczba_start_sugerowane; end; end; else local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,2,czy_bez_naglowka,function(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek_nowe)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek_nowe+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_obiekt_start_nowe-1); str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then return true; end; end; return nil; end); if(liczba_start_naglowek)then liczba_obiekt_start_nowe=liczba_start_naglowek; end; --[[]] local liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_obiekt_start_nowe); liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; end; end; break; else liczba_start_rozdzial=liczba_obiekt_koniec_nowe; liczba_nie_okladka_artykul_koniec=nil; end; liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; else liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; end; end; else break; end; end; if(not liczba_start)then return "";end; local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*:#;<>]?)([^\n]-)"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_obiekt_start_od_tylu,liczba_start,true); ---- if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=(czy_dobry_obiekt)and((lista_szablon~="")or((lista_szablon=="")and(przerwa_szablon==""))); local czy_listy=czy_listy or (czy_dobry_obiekt)and((lista_szablon=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_koniec=liczba_koniec_szablon; local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu=nil;local numer_rodzaju_artykulu=nil;local czy_podrecznik=nil; if(liczba_start<=liczba_obiekt_start)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(not czy_element_spisu)then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; --if(((not czy_spis_tresci)and(lista_szablon~=""))or((czy_spis_tresci)and((lista_szablon=="")and(przerwa_szablon==""))))then czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---elseif((lista_szablon=="")and(przerwa_szablon==""))then ---czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---end; if(czy_element_spisu)then break;end; end; end; end; end; if(czy_element_spisu)then local function IleKoniec() while(true)do local poczatek_nierozdzalowe=liczba_obiekt_koniec; local liczba_start_nieszablon_nielink_nierozdzialowa,liczba_koniec_nieszablon_nielink_nierozdzialowa,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*:;#<>'\n]+[^\n]*)",poczatek_nierozdzalowe,nil,false) if(liczba_start_nieszablon_nielink_nierozdzialowa)then local rozdzial_dodatki=mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$"); if(rozdzial_dodatki)then local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; end; end; local czy_spacje=mw.ustring.match(linia,"^%s*$"); if(not czy_spacje)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; elseif(czy_spacje)then liczba_obiekt_koniec=liczba_koniec_nieszablon_nielink_nierozdzialowa; --else -- liczba_koniec=#tekst_rozwiniety_calego_artykulu; -- return; end; else liczba_koniec=#tekst_rozwiniety_calego_artykulu; break; end; end; end; IleKoniec(); break; end; end; else break; end; end; if(liczba_koniec)then local koniec_dodatnie_rozdzialy=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial_nazwa,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,koniec_dodatnie_rozdzialy,liczba_start,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)and(liczba_rozdzial_start>=liczba_koniec)then koniec_dodatnie_rozdzialy=liczba_rozdzial_start; local start=1; while(true)do local start_szablon,koniec_szablon,obiekt_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(rozdzial,szablon_normy_kodowania_szablonu,start); local koniec_obiekt;local kod_obiekt;local obiekt=nil; if(start_szablon)then if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then --koniec_obiekt=koniec_szablon; local kod=kod_szablon; local obiekt=obiekt_szablon; local kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(czy_element)then liczba_koniec=liczba_rozdzial_koniec; break; end; end; start=koniec_szablon; else break; end; end; else break; end; end; end; if(not liczba_koniec)then return "";end; if(liczba_start>=liczba_koniec)then return "";end; --- Licencja ---- local licencja_koniec,szablon_licencja=p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_koniec,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((licencja_koniec)and(licencja_koniec>=liczba_koniec))then liczba_koniec=licencja_koniec; end; ----- local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); ----- for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); end; --mw.log(tekst) --- Licencja ---- --mw.log(liczba_start,liczba_koniec,"TYTANw",pelna_nazwa_spisu_tresci_szablonowa) --mw.log("TYTAN1",tekst,"TYTAN2") --return nil; --local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); return tekst; end; return p; eiutud7fnbevpekskbc36bq9d0wgwdx 544751 544750 2026-05-31T13:51:54Z Persino 2851 544751 Scribunto text/plain local p={}; function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=false; local techniczne_modul=require("Module:Techniczne"); linia=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(linia); for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci) do tak=tak or (((not spacje_na_poczatku) or (not mw.ustring.match(linia,"^%s+"))) and (mw.ustring.match(linia,"^"..p_wzor.."$"))); if(tak)then return true;end; end; return nil; end; function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local techniczne_modul=require("Module:Techniczne"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^\n]+)",liczba_od,liczba_do,true); if(liczba_start_rozdzial)then rozdzial=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(rozdzial); local czy_zerowy_spis_rzeczy; for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci)do czy_zerowy_spis_rzeczy=mw.ustring.match(rozdzial,p_wzor); if(czy_zerowy_spis_rzeczy)then break;end; end; if((czy_zerowy_spis_rzeczy)and(not mw.ustring.match(rozdzial,"^%s+")))then return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial; else liczba_od=liczba_start_rozdzial; end; else return; end; end; return nil; end; function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return;end; return true; end); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa)and(zawartosc))then if(nazwa=="center")then return true; end; end; end; end; function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"("..wzor..")",liczba_od,liczba_do,jak); if(liczba_start_rozdzial)then if((not mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))and(not mw.ustring.match(linia,"^[%*#:;<>]")))then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon,obiekt,kod,poziom_iteracji=iterator(); local wynik=((szablon)and(obiekt)and(kod))and p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(not wynik)then local rozdzial,czy_standardowe_rozdzialy=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((rozdzial)and(czy_standardowe_rozdzialy))then return liczba_start_rozdzial,liczba_koniec_rozdzial,linia; end; end; end; if(jak)then liczba_od=liczba_start_rozdzial;else liczba_od=liczba_koniec_rozdzial;end; else return; end; end; return nil; end; function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA,nil,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych); if(not kom)then local tab=((tab_2 and tab_2[1]) and tab_2 or nil); if(tab)then if(numer_rodzaju_artykulu==1)then local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false); local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s")))) local function StronyWstepu(artykul) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=true; for _,wzor in ipairs(stronicowyparser_obiekty_modul.artykularne_niespisowe) do tak=tak and (not mw.ustring.match(artykul,wzor)); if(not tak)then return tak;end; end; return tak; end; if((czy_glowny_spis_tresci)and(artykul==""))then return false,numer_rodzaju_artykulu,czy_podrecznik,false; else if((czy_usun_okladka)--[[or(numer_rodzaju_artykulu>1)]]or(--[[(numer_rodzaju_artykulu==1)and]](artykul~="")and(StronyWstepu(artykul))))then return true,numer_rodzaju_artykulu,czy_podrecznik,false; else return true,numer_rodzaju_artykulu,czy_podrecznik,true; end; end; else return true,numer_rodzaju_artykulu,--[[czy_podrecznik]]false,false; end; end; end; return false,nil; end; function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(obiekt=="SZABLON")then local szablonowe_modul=require("Module:Szablonowe"); local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) ---- if(nazwa_szablonu=="SpisTreści")then return true,1; else local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]; if(tabela_spisu)then local parametr_linku; if(tabela_spisu[1]==true)then local numer_link=tabela_spisu["numer_link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; else local numer_link=tabela_spisu["link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; end; if(parametr_linku)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(parametr_linku,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; end; end; end; end; end); if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; return false; end; function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); if((not czy_element_spisu)and(not numer_rodzaju_artykulu))then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); end; return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; function p.SzukanieNaPodstawieWzoru(str,wzor,liczba,liczba2,czy_od_tylu,jak) if(not czy_od_tylu)then if((liczba)and(liczba2)and(liczba>liczba2))then return;end; local a,b,c,d,e,f,g,h,i,j,k,l=mw.ustring.find(str,wzor,liczba); if((a)and(b)and(a>b))then return;end; if((not liczba2)or(b<=liczba2))then return a,b,c,d,e,f,g,h,i,j,k,l; end; return nil; else if((liczba)and(liczba2)and(liczba<liczba2))then return;end; local liczba_start=liczba2 or 1; local a,b,c,d,e,f,g,h,i,j,k,l=nil,nil,nil,nil,nil,nil,nil; while(true)do local a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1=mw.ustring.find(str,wzor,liczba_start); if((a1)and(b1)and(a1>b1))then return;end; if((not b1)or((b1)and(b1>liczba)))then return a,b,c,d,e,f,g,h,i,j,k,l; elseif((b1)and(b1==liczba))then return a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; end; a,b,c,d,e,f,g,h,i,j,k,l=a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; if(not jak)then if(a1==b1)then liczba_start=b1+1; else liczba_start=b1; end; else liczba_start=b1+1; end; end; end; end; function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); while(true)do local liczba_start_szablon,liczba_koniec_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,szablon_normy_kodowania_szablonu,liczba_obiekt_start_od_tylu,liczba_start,true); if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local obiekt="SZABLON"; local kod=kod_szablon and tonumber(kod_szablon) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; ---- local liczba_koniec_szablon,norma_wzoru=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if(nazwa_szablonu=="Licencja")then return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end; end); if(liczba_koniec_szablon)then return liczba_koniec_szablon,norma_wzoru; end; elseif(not liczba_start_szablon)then return nil; end; end; end; function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba,liczba2,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local liczba_start_szablon;local liczba_koniec_szablon; local liczba_wys_szablon=liczba; local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); local spis_naglowka_szablon; local spis_naglowka_szablon_stare; while(true)do local kod; liczba_start_szablon,liczba_koniec_szablon,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_szablonu,liczba_wys_szablon,liczba2,czy_od_tylu); if(liczba_start_szablon)then if(not czy_od_tylu)then liczba_wys_szablon=liczba_koniec_szablon;else liczba_wys_szablon=liczba_start_szablon;end; local obiekt="SZABLON"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local liczba_szablon_centrowany=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(liczba_szablon_centrowany)then local naglowek=tabela_parametrow_szablonu[liczba_szablon_centrowany]; if(naglowek)then if(not mw.ustring.match(naglowek,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_szablon_stare=naglowek; spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_szablon))then return false; end; else spis_naglowka_szablon=naglowek; return false; end; end; end; end; return true; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return true; end); if(not wynik)then break; end; else break; end; end; local liczba_start_znacznik;local liczba_koniec_znacznik; local liczba_wys_znacznik=liczba; local norma_kodowania_znacznika=szablonowe_modul.NormaWzoruKodowaniaTekstu("ZNACZNIK"); local spis_naglowka_znacznik; local spis_naglowka_znacznik_stare; while(true)do local kod; liczba_start_znacznik,liczba_koniec_znacznik,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_znacznika,liczba_wys_znacznik,liczba2,czy_od_tylu); if(liczba_start_znacznik)then if(not czy_od_tylu)then liczba_wys_znacznik=liczba_koniec_znacznik;else liczba_wys_znacznik=liczba_start_znacznik;end; local obiekt="ZNACZNIK"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then if(zawartosc)then if(not mw.ustring.match(zawartosc,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_znacznik_stare=zawartosc; spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(zawartosc,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_znacznik))then break; end; else spis_naglowka_znacznik=zawartosc; break; end; end; end; end; else break; end; end; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local liczba_start_dodatni;local liczba_koniec_dodatni; local liczba_wys_dodatni=liczba; local spis_naglowka_dodatni; local spis_naglowka_dodatni_stare; local spis_naglowka_poziom; while(true)do local naglowek; liczba_start_dodatni,liczba_koniec_dodatni,naglowek=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"(=+[^\n]*[^=\n][^\n]*=+)[^%S\n]*",liczba_wys_dodatni,liczba2,czy_od_tylu); if(not liczba_start_dodatni)then break;end; if(not czy_od_tylu)then liczba_wys_dodatni=liczba_koniec_dodatni;else liczba_wys_dodatni=liczba_start_dodatni;end; local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek); if(naglowek)then if(czy_spis_tresci)then spis_naglowka_dodatni_stare=naglowek; spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; spis_naglowka_poziom=poziom_naglowka; if(czy_spis_tresci(spis_naglowka_dodatni))then break; end; else spis_naglowka_dodatni=naglowek; spis_naglowka_poziom=poziom_naglowka; break; end; end; end; if((liczba_start_szablon)or(liczba_start_znacznik)or(liczba_start_dodatni))then local _max_min; if(czy_od_tylu)then _max_min=math.max(math.max(liczba_start_szablon or 0,liczba_start_znacznik or 0),liczba_start_dodatni or 0); else _max_min=math.min(math.min(liczba_start_szablon or #tekst_rozwiniety_calego_artykulu,liczba_start_znacznik or #tekst_rozwiniety_calego_artykulu),liczba_start_dodatni or #tekst_rozwiniety_calego_artykulu); end; if((liczba_start_szablon)and(_max_min==liczba_start_szablon))then local spis_naglowka_szablon_stare=spis_naglowka_szablon_stare or spis_naglowka_szablon; if((not czy_spis_tresci)and(spis_naglowka_szablon))then spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; end; return liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon,spis_naglowka_szablon_stare,nil; elseif((liczba_start_znacznik)and(_max_min==liczba_start_znacznik))then local spis_naglowka_znacznik_stare=spis_naglowka_znacznik_stare or spis_naglowka_znacznik; if((not czy_spis_tresci)and(spis_naglowka_znacznik))then spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_znacznik,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; end; return liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik,spis_naglowka_znacznik_stare,nil; elseif((liczba_start_dodatni)and(_max_min==liczba_start_dodatni))then local spis_naglowka_dodatni_stare=spis_naglowka_dodatni_stare or spis_naglowka_dodatni; if((not czy_spis_tresci)and(spis_naglowka_dodatni))then spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_dodatni,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; end; return liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_poziom; end; end; return nil; end; function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy; local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local linki=function(zawartosc) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="LINKW")or(obiekt=="LINKZ"))then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; elseif(obiekt=="SZABLON")then local szablon,obiekt,kod,dalszy_tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) or(stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) )then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(tab_szablon_link_intelignetny)then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; end); return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; if(obiekt=="SZABLON")then local szablon,obiekt,kod=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return nil;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return nil;end; local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end); return szablon,obiekt,kod; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(zawartosc)then if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; return nil; end; end; function p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_spis,liczba_start_tekst,liczba2,czy_od_tylu) local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; local a1;local a2;local a3;local a4;local a5;local a6;local a7;local a8;local a9;local a10; local dlugosc_tekstu_wyszukiwanego=#tekst_rozwiniety_calego_artykulu; if(not czy_od_tylu)then if((not liczba_start_tekst)or(liczba_start_tekst==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==1))and((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; end; end; end; else if(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego))and((not liczba2)or(liczba2==1)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; end; end; end; end; return liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10; end; function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do --czy_w_petli=true; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then return true; elseif((not czy_element_spisu)and(numer_rodzaju_artykulu))then tak=true; elseif(czy_okladka)then tak=true; end; end; return (not tak); end; function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek+1,liczba_obiekt_start_nowe-1); if((mw.ustring.match(str,"^%s*'+(.+)'+%s*$")) or(mw.ustring.match(str,"^[%*#:;<>]+.*$") or(mw.ustring.match(str,"^[%s%p%w]*$"))) )then return nil;end; local ile_punktowanych=0; local szablonowe_modul=require("Module:Szablonowe"); local _,ile=mw.ustring.gsub(str,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[%*#;:<>]"))or(mw.ustring.match(linia,"^%s*$")))then ile_punktowanych=ile_punktowanych+1; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(numer_rodzaju_artykulu>2))then ile_punktowanych=ile_punktowanych+1; break; end; end; end; end); if(ile_punktowanych>=ile)then return nil; end; str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then if(czy_zeruj)then tab_zmienne.liczba_nie_okladka_artykul=nil; tab_zmienne.liczba_pierwszy_rozdzialowy_artykul=nil; tab_zmienne.czy_ten_rozdzial=nil; --tab_zmienne={["liczba_nie_okladka_artykul"]=liczba_nie_okladka_artykul,["liczba_pierwszy_rozdzialowy_artykul"]=liczba_pierwszy_rozdzialowy_artykul,["czy_ten_rozdzial"]=czy_ten_rozdzial,} end; return true; end; end; return nil; end; end; function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe) local odtylu=liczba_obiekt_start_spac_par; local liczba_start_naglowek;local liczba_koniec_naglowek;local naglowek;local poziom_naglowka; local liczba_start_naglowek_dalej;local liczba_koniec_naglowek_dalej;local naglowek_dalej;local poziom_naglowka_dalej; local czy_fun=false; local czy_pierwszy=nil; local liczba_koniec_naglowek_poczt=nil; while(true)do local liczba_start_naglowek_nowe;local liczba_koniec_naglowek_nowe;local naglowek_nowe;local poziom_naglowka_nowe; if(czy_dodatni==1)then local _; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,_,poziom_naglowka_nowe=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); elseif(czy_dodatni==2)then local str_lista_naglowek; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,str_lista_naglowek,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*#:;<>]+)[^%S\n]*([^\n]-)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=poziom_naglowka_nowe and (-#str_lista_naglowek) or nil; else liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^%S\n]*[^\n]-:)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and 0 or nil; end; if(not liczba_start_naglowek_nowe)then break; else poziom_naglowka_nowe=(czy_dodatni==1)and (poziom_naglowka_nowe or 2) or poziom_naglowka_nowe; local czy_tak_spisowe=(czy_dodatni==1) and true or p.CzyTamElementyNieSpisoweArtykularne(mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe),nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); if(czy_tak_spisowe)then if(not czy_pierwszy)then liczba_koniec_naglowek_poczt=liczba_koniec_naglowek_nowe; czy_pierwszy=true; end; if(liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe<liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe+1<=liczba_start_naglowek-1)then local pomiedzy_naglowkami=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_start_naglowek-1); if((pomiedzy_naglowkami)and(not mw.ustring.match(pomiedzy_naglowkami,"^%s*$")) and((czy_dodatni==1) and( ((poziom_naglowka_nowe)and(not poziom_naglowka)) or( ((poziom_naglowka_nowe)and(poziom_naglowka)) and(poziom_naglowka_nowe>=poziom_naglowka) ) ) or(czy_dodatni~=1) ) )then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; elseif(liczba_start_naglowek~=liczba_koniec_naglowek_nowe)then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; if(((czy_dodatni==1)or(czy_dodatni==2))and(AnalizowanieSekcjowe)and(not czy_fun))then local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek_nowe); if(not spis_tresci)then --local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); local czy_wynik=AnalizowanieSekcjowe(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); if(czy_wynik)then return false;end; end; czy_fun=true; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; end; end; odtylu=liczba_start_naglowek_nowe; end; return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej; end function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe) local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka,liczba_start_naglowek_dalej=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,1,czy_bez_naglowka,AnalizowanieSekcjowe); ---- if((AnalizowanieSekcjowe)and(liczba_start_naglowek==false))then return nil;end; ---- local str_spacja_lub_zerowy_naglowek=function(tekst) local ile_znalezione_linie_wedlug_wzoru=0; local _,ile=mw.ustring.gsub(tekst,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[^%*#:;<>\n].-:%s*$"))or(mw.ustring.match(linia,"^%s*$")))then ile_znalezione_linie_wedlug_wzoru=ile_znalezione_linie_wedlug_wzoru+1; end; return nil; end); if(ile==ile_znalezione_linie_wedlug_wzoru)then return true;end; return nil; end; if((not liczba_start_naglowek_dalej)and(liczba_start_naglowek))then local liczba_szukaj_odtylu_tekst=liczba_start_naglowek; local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]+)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(not liczba_start_rozdzial)then while(true)do local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; if(not liczba_start_naglowek_temp)then break;end; end; end; elseif(not liczba_start_naglowek)then local liczba_szukaj_odtylu_tekst=liczba_obiekt_start_kolei_par; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]-[^'\n][^\n]-)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(liczba_start_naglowek_temp)then local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek_temp,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not mw.ustring.match(spis_naglowka_szablon,"!%s*$")and(not mw.ustring.match(spis_naglowka_szablon,"%S!")))then ---- local tak=false; local czy_w_petli=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(naglowek_temp,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do czy_w_petli=true; if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then if(numer_rodzaju_artykulu==1)then tak=true; break; end; end; end; end; if((tak)or(not czy_w_petli))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; else local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; end; end; return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka; end; function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul) local liczba_spac=0; if(liczba_start)then local liczba_start_tekst=liczba_start;local liczba_koniec_tekst;local linia; while(true)do local liczba_start_tekst_stare=liczba_start_tekst; linia=nil local liczba_szukaj_odtylu_tekst=liczba_start_tekst; liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); local czy_poczt; if(not liczba_start_tekst)then liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); czy_poczt=true; else czy_poczt=false; end; local rozdzial_dodatki=linia and mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$") or nil; if(rozdzial_dodatki)then local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then return (czy_dalej_rozdzial)and liczba_start or liczba_koniec_tekst,liczba_spac; end; end; local spacja=linia and mw.ustring.match(linia,"^%s*$") or nil; if(spacja)then liczba_spac=liczba_spac+#linia+(czy_poczt and 1 or 2); elseif((not spacja)and(linia))then local czy_spis=nil; local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true); local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; if(not spis_tresci)then liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_start_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1); liczba_start=liczba_start_rozdzial or ((mw.ustring.match(linia,"^[^\n]+:[^%S\n]*$")) and liczba_start_tekst or liczba_koniec_tekst); czy_spis=liczba_start_rozdzial and true or nil; else liczba_start=--[[spis_tresci and]] liczba_start_tekst--[[ or liczba_koniec_tekst]]; czy_spis=true; end; if(not liczba_start_rozdzial)then if(not spis_tresci)then local szablonowe_modul=require("Module:Szablonowe"); if(mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then local tak=false; local czy_okladka=nil; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then tak=true; break; end; end; end; liczba_start=tak and liczba_start_tekst or liczba_start; else liczba_start=liczba_koniec_tekst; end; else liczba_start=--[[spis_tresci and ]]liczba_start_tekst--[[ or liczba_koniec_tekst]]; end; end; return liczba_start,liczba_spac,czy_spis; elseif(not liczba_start_tekst)then return (czy_dalej_rozdzial)and liczba_start or math.min(liczba_pierwszy_rozdzialowy_artykul or 1,liczba_start),liczba_spac,nil; end; end; end; return liczba_start,liczba_spac,nil; end; function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa) local liczba_spisu=liczba_spisowa; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu() while(true)do local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); --- if((liczba_linki_nierozdzialowe_szablonu) and( (przed_tekst=="") or(mw.ustring.match(przed_tekst,"^[%p%s%d%.]*$")) ) )then liczba_spisu=liczba_linki_nierozdzialowe_szablonu; if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); ---- ---- if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(dalszy_tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon_obiekt_temp,szablon_kod_temp=obiekt_szablon,kod_szablon; for szablon,obiekt,kod in iterator do local czy_znajdz=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_znajdz)then local czy_tekst=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(szablon_obiekt_temp,szablon_kod_temp).."[%p%s%d%.]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_tekst)then if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; end; end; else return liczba_spisowa,false; end; szablon_obiekt_temp,szablon_kod_temp=obiekt,kod; end; end; return liczba_spisowa,false; end; end; else return liczba_spisowa,false; end; end; end; function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=nil; local techniczne_modul=require("Module:Techniczne"); local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,1,nil,false,function(naglowek) naglowek=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(naglowek); if(mw.ustring.match(naglowek,"^"..tab_wzor[1].."$"))then return true; end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not liczba_rozdzial_start)then liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"("..tab_wzor[1]..")",liczba_rozdzial_koniec,nil,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)then tak=true;end; end; if(liczba_rozdzial_start)then local liczba_rozdzial_start2,liczba_rozdzial_koniec2; if(not tak)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); else local liczba_rozdzial_start3,liczba_rozdzial_koniec3=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local liczba_rozdzial_start4,liczba_rozdzial_koniec4=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"[^%*#;:<>\n]+[^\n]+",liczba_rozdzial_koniec,nil,true,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- if((liczba_rozdzial_start3)and(liczba_rozdzial_start4))then if(liczba_rozdzial_start3<liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; end; elseif(liczba_rozdzial_start3)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; elseif(liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=nil,nil; end; end; ----- local str_bibliografia=mw.ustring.sub(tekst,liczba_rozdzial_koniec+1,(liczba_rozdzial_start2 and (liczba_rozdzial_start2-1) or #tekst)); if((not str_bibliografia)or(str_bibliografia==""))then return tekst;end; local tekst1=mw.ustring.sub(tekst,1,liczba_rozdzial_koniec); local tekst2=liczba_rozdzial_start2 and mw.ustring.sub(tekst,liczba_rozdzial_start2,#tekst) or ""; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local techniczne_modul=require("Module:Techniczne"); str_bibliografia=mw.ustring.gsub(str_bibliografia,"([^\n]+)",function(linia) local obiekt,kod,dalszy_tekst=mw.ustring.match(linia,"^[%*:;#<>]+%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."([^\n]*)$"); if((obiekt)and(kod)and(dalszy_tekst))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_okladka)and(czy_element_spisu)and(numer_rodzaju_artykulu==1))then return linia; end; end; linia=dalszy_tekst or linia; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if(((tab_wzor[2])and((obiekt=="LINKW")or(obiekt=="LINKZ")))or(obiekt=="SZABLON"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if(czy_element_spisu)then return linia; elseif(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((stronicowyparser_obiekty_modul.szablony_przypisowe[nazwa_szablonu])or(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu]))then return linia; else return ""; end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return ""; end); return wynik; end; end; end; return ""; end); tekst=tekst1..str_bibliografia..tekst2; end; return tekst; end; function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_uruchomiony_analizator_spisu_rzeczy_strony=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); if(not czy_uruchomiony_analizator_spisu_rzeczy_strony)then return nil;end; ---- local liczba_start=nil;local liczba_koniec=nil; ---- local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); ----- local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(); ---- local liczba_obiekt_koniec=1; local liczba_pierwszy_rozdzialowy_artykul=nil; local liczba_nie_okladka_artykul=nil; local tab_nazwa_spisow_przekierowaniowych={}; local liczba_start_rozdzial=1; local liczba_obiekt_start_poprz=nil; local liczba_obiekt_koniec_poprz=nil; local liczba_nie_okladka_artykul_koniec=nil; local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*"; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false); if(liczba_start_szablon)then liczba_obiekt_koniec=liczba_koniec_szablon; --local czy_rozdzial_dodatni=((lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local czy_rozdzial_dodatni; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=((czy_dobry_obiekt)and(((lista_szablon~="")and((przerwa_szablon=="")or((mw.ustring.match(lista_szablon,"^:"))and((przerwa_szablon==">")or(przerwa_szablon=="<")))or(not mw.ustring.match(lista_szablon,"^:"))))or((lista_szablon=="")and(przerwa_szablon=="")and(not mw.ustring.match(dalszy_tekst,"^>"))))); czy_listy=czy_listy or ((czy_dobry_obiekt)and(lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_element_spisu)or(czy_okladka))then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) local czy_element_spisu_temp;local numer_rodzaju_artykulu_temp;local czy_podrecznik_temp;local czy_okladka_temp; local tak=false; for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu_temp)and(not czy_okladka_temp))then if(numer_rodzaju_artykulu_temp==1)then tak=true; break; end; end; end; end; if(tak)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp; end; end; liczba_pierwszy_rozdzialowy_artykul=(not liczba_pierwszy_rozdzialowy_artykul)and(czy_element_spisu and liczba_obiekt_start or nil) or liczba_pierwszy_rozdzialowy_artykul; liczba_nie_okladka_artykul=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and(dalszy_tekst=="")))))) and liczba_obiekt_start or liczba_nie_okladka_artykul; liczba_nie_okladka_artykul_koniec=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and (dalszy_tekst=="")))))) and liczba_obiekt_koniec or liczba_nie_okladka_artykul_koniec; ---- if((czy_element_spisu)and(numer_rodzaju_artykulu==1)and(czy_podrecznik)and(not czy_okladka))then local czy_bez_naglowka=nil; local liczba_obiekt_start_nowe=liczba_nie_okladka_artykul or liczba_obiekt_start; local liczba_obiekt_koniec_nowe=liczba_nie_okladka_artykul_koniec or liczba_obiekt_koniec; local liczba_start_naglowek,liczba_koniec_naglowek,naglowek=nil,nil,nil; local czy_ten_rozdzial=true; local liczba_obiekt_start_nowe_temp=liczba_obiekt_start_nowe; local liczba_spis_tresci_start,liczba_spis_tresci_koniec,naglowka_dodatni_start,spis_naglowka_dodatni_stare_start,poziom_naglowka_start=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_obiekt_start_nowe,liczba_start_rozdzial,true,function(naglowek) if(p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek))then return true;end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local czy_zeruj=(not liczba_spis_tresci_start)and true or false; liczba_obiekt_start_nowe=liczba_spis_tresci_start or liczba_obiekt_start_nowe; local tab_zmienne={ liczba_nie_okladka_artykul=liczba_nie_okladka_artykul, liczba_pierwszy_rozdzialowy_artykul=liczba_pierwszy_rozdzialowy_artykul, czy_ten_rozdzial=czy_ten_rozdzial, }; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; if(not czy_ten_rozdzial)then if(liczba_obiekt_start~=liczba_obiekt_start_nowe_temp)then liczba_start_rozdzial=liczba_obiekt_start_nowe_temp; liczba_obiekt_start_nowe=liczba_obiekt_start; czy_ten_rozdzial=true; tab_zmienne.czy_ten_rozdzial=czy_ten_rozdzial; liczba_start_naglowek,liczba_koniec_naglowek,naglowek=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; end; end; ----- liczba_start_naglowek=( (not liczba_spis_tresci_start) or((poziom_naglowka_start)and(poziom_naglowka))and( ((poziom_naglowka_start>0)and(poziom_naglowka<=0)) or((poziom_naglowka_start<=0)and(poziom_naglowka<=0)and(poziom_naglowka_start>=poziom_naglowka)) or((poziom_naglowka_start>0)and(poziom_naglowka>0)and(poziom_naglowka_start<=poziom_naglowka)) ) ) and liczba_spis_tresci_start or liczba_start_naglowek; if(((not czy_okladka)or((czy_okladka)and(lista_szablon~=""))or(liczba_start_naglowek))and(czy_ten_rozdzial))then ---- czy_bez_naglowka=((not liczba_start_naglowek)or((liczba_obiekt_koniec_poprz or 1)<=(liczba_start_rozdzial or 1))) and true or false; ---- if(liczba_start_naglowek)then local liczba_przed_rozdzialem;local czy_znajdz; liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start_naglowek); local odtylu_dalej=--[[liczba_spis_tresci or]] liczba_start_naglowek; local liczba_start_naglowek_przed=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu_dalej,liczba_start_rozdzial,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_start_naglowek_przed)then if(liczba_przed_rozdzialem>=liczba_start_naglowek_przed)then liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; else liczba_start=liczba_spis_tresci; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; end; else liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; else liczba_start=liczba_start_sugerowane; end; end; else local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,2,czy_bez_naglowka,function(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek_nowe)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek_nowe+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_obiekt_start_nowe-1); str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then return true; end; end; return nil; end); if(liczba_start_naglowek)then liczba_obiekt_start_nowe=liczba_start_naglowek; end; --[[]] local liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_obiekt_start_nowe); liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; end; end; break; else liczba_start_rozdzial=liczba_obiekt_koniec_nowe; liczba_nie_okladka_artykul_koniec=nil; end; liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; else liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; end; end; else break; end; end; if(not liczba_start)then return "";end; local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*:#;<>]?)([^\n]-)"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_obiekt_start_od_tylu,liczba_start,true); ---- if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=(czy_dobry_obiekt)and((lista_szablon~="")or((lista_szablon=="")and(przerwa_szablon==""))); local czy_listy=czy_listy or (czy_dobry_obiekt)and((lista_szablon=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_koniec=liczba_koniec_szablon; local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu=nil;local numer_rodzaju_artykulu=nil;local czy_podrecznik=nil; if(liczba_start<=liczba_obiekt_start)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(not czy_element_spisu)then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; --if(((not czy_spis_tresci)and(lista_szablon~=""))or((czy_spis_tresci)and((lista_szablon=="")and(przerwa_szablon==""))))then czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---elseif((lista_szablon=="")and(przerwa_szablon==""))then ---czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---end; if(czy_element_spisu)then break;end; end; end; end; end; if(czy_element_spisu)then local function IleKoniec() while(true)do local poczatek_nierozdzalowe=liczba_obiekt_koniec; local liczba_start_nieszablon_nielink_nierozdzialowa,liczba_koniec_nieszablon_nielink_nierozdzialowa,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*:;#<>'\n]+[^\n]*)",poczatek_nierozdzalowe,nil,false) if(liczba_start_nieszablon_nielink_nierozdzialowa)then local rozdzial_dodatki=mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$"); if(rozdzial_dodatki)then local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; end; end; local czy_spacje=mw.ustring.match(linia,"^%s*$"); if(not czy_spacje)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; elseif(czy_spacje)then liczba_obiekt_koniec=liczba_koniec_nieszablon_nielink_nierozdzialowa; --else -- liczba_koniec=#tekst_rozwiniety_calego_artykulu; -- return; end; else liczba_koniec=#tekst_rozwiniety_calego_artykulu; break; end; end; end; IleKoniec(); break; end; end; else break; end; end; if(liczba_koniec)then local koniec_dodatnie_rozdzialy=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial_nazwa,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,koniec_dodatnie_rozdzialy,liczba_start,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)and(liczba_rozdzial_start>=liczba_koniec)then koniec_dodatnie_rozdzialy=liczba_rozdzial_start; local start=1; while(true)do local start_szablon,koniec_szablon,obiekt_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(rozdzial,szablon_normy_kodowania_szablonu,start); local koniec_obiekt;local kod_obiekt;local obiekt=nil; if(start_szablon)then if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then --koniec_obiekt=koniec_szablon; local kod=kod_szablon; local obiekt=obiekt_szablon; local kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(czy_element)then liczba_koniec=liczba_rozdzial_koniec; break; end; end; start=koniec_szablon; else break; end; end; else break; end; end; end; if(not liczba_koniec)then return "";end; if(liczba_start>=liczba_koniec)then return "";end; --- Licencja ---- local licencja_koniec,szablon_licencja=p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_koniec,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((licencja_koniec)and(licencja_koniec>=liczba_koniec))then liczba_koniec=licencja_koniec; end; ----- local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); ----- for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); end; --mw.log(tekst) --- Licencja ---- --mw.log(liczba_start,liczba_koniec,"TYTANw",pelna_nazwa_spisu_tresci_szablonowa) --mw.log("TYTAN1",tekst,"TYTAN2") --return nil; --local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); return tekst; end; return p; bdwy2bhge97btfnrsfbuachwkwqymzo 544752 544751 2026-05-31T14:21:43Z Persino 2851 544752 Scribunto text/plain local p={}; function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=false; local techniczne_modul=require("Module:Techniczne"); linia=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(linia); for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci) do tak=tak or (((not spacje_na_poczatku) or (not mw.ustring.match(linia,"^%s+"))) and (mw.ustring.match(linia,"^"..p_wzor.."$"))); if(tak)then return true;end; end; return nil; end; function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local techniczne_modul=require("Module:Techniczne"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^\n]+)",liczba_od,liczba_do,true); if(liczba_start_rozdzial)then rozdzial=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(rozdzial); local czy_zerowy_spis_rzeczy; for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci)do czy_zerowy_spis_rzeczy=mw.ustring.match(rozdzial,p_wzor); if(czy_zerowy_spis_rzeczy)then break;end; end; if((czy_zerowy_spis_rzeczy)and(not mw.ustring.match(rozdzial,"^%s+")))then return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial; else liczba_od=liczba_start_rozdzial; end; else return; end; end; return nil; end; function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return;end; return true; end); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa)and(zawartosc))then if(nazwa=="center")then return true; end; end; end; end; function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"("..wzor..")",liczba_od,liczba_do,jak); if(liczba_start_rozdzial)then if((not mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))and(not mw.ustring.match(linia,"^[%*#:;<>]")))then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon,obiekt,kod,poziom_iteracji=iterator(); local wynik=((szablon)and(obiekt)and(kod))and p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(not wynik)then local rozdzial,czy_standardowe_rozdzialy=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((rozdzial)and(czy_standardowe_rozdzialy))then return liczba_start_rozdzial,liczba_koniec_rozdzial,linia; end; end; end; if(jak)then liczba_od=liczba_start_rozdzial;else liczba_od=liczba_koniec_rozdzial;end; else return; end; end; return nil; end; function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA,nil,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych); if(not kom)then local tab=((tab_2 and tab_2[1]) and tab_2 or nil); if(tab)then if(numer_rodzaju_artykulu==1)then local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false); local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s")))) local function StronyWstepu(artykul) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=true; for _,wzor in ipairs(stronicowyparser_obiekty_modul.artykularne_niespisowe) do tak=tak and (not mw.ustring.match(artykul,wzor)); if(not tak)then return tak;end; end; return tak; end; if((czy_glowny_spis_tresci)and(artykul==""))then return false,numer_rodzaju_artykulu,czy_podrecznik,false; else if((czy_usun_okladka)--[[or(numer_rodzaju_artykulu>1)]]or(--[[(numer_rodzaju_artykulu==1)and]](artykul~="")and(StronyWstepu(artykul))))then return true,numer_rodzaju_artykulu,czy_podrecznik,false; else return true,numer_rodzaju_artykulu,czy_podrecznik,true; end; end; else return true,numer_rodzaju_artykulu,--[[czy_podrecznik]]false,false; end; end; end; return false,nil; end; function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(obiekt=="SZABLON")then local szablonowe_modul=require("Module:Szablonowe"); local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) ---- if(nazwa_szablonu=="SpisTreści")then return true,1; else local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]; if(tabela_spisu)then local parametr_linku; if(tabela_spisu[1]==true)then local numer_link=tabela_spisu["numer_link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; else local numer_link=tabela_spisu["link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; end; if(parametr_linku)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(parametr_linku,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; end; end; end; end; end); if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; return false; end; function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); if((not czy_element_spisu)and(not numer_rodzaju_artykulu))then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); end; return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; function p.SzukanieNaPodstawieWzoru(str,wzor,liczba,liczba2,czy_od_tylu,jak) if(not czy_od_tylu)then if((liczba)and(liczba2)and(liczba>liczba2))then return;end; local a,b,c,d,e,f,g,h,i,j,k,l=mw.ustring.find(str,wzor,liczba); if((a)and(b)and(a>b))then return;end; if((not liczba2)or(b<=liczba2))then return a,b,c,d,e,f,g,h,i,j,k,l; end; return nil; else if((liczba)and(liczba2)and(liczba<liczba2))then return;end; local liczba_start=liczba2 or 1; local a,b,c,d,e,f,g,h,i,j,k,l=nil,nil,nil,nil,nil,nil,nil; while(true)do local a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1=mw.ustring.find(str,wzor,liczba_start); if((a1)and(b1)and(a1>b1))then return;end; if((not b1)or((b1)and(b1>liczba)))then return a,b,c,d,e,f,g,h,i,j,k,l; elseif((b1)and(b1==liczba))then return a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; end; a,b,c,d,e,f,g,h,i,j,k,l=a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; if(not jak)then if(a1==b1)then liczba_start=b1+1; else liczba_start=b1; end; else liczba_start=b1+1; end; end; end; end; function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); while(true)do local liczba_start_szablon,liczba_koniec_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,szablon_normy_kodowania_szablonu,liczba_obiekt_start_od_tylu,liczba_start,true); if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local obiekt="SZABLON"; local kod=kod_szablon and tonumber(kod_szablon) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; ---- local liczba_koniec_szablon,norma_wzoru=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if(nazwa_szablonu=="Licencja")then return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end; end); if(liczba_koniec_szablon)then return liczba_koniec_szablon,norma_wzoru; end; elseif(not liczba_start_szablon)then return nil; end; end; end; function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba,liczba2,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local liczba_start_szablon;local liczba_koniec_szablon; local liczba_wys_szablon=liczba; local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); local spis_naglowka_szablon; local spis_naglowka_szablon_stare; while(true)do local kod; liczba_start_szablon,liczba_koniec_szablon,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_szablonu,liczba_wys_szablon,liczba2,czy_od_tylu); if(liczba_start_szablon)then if(not czy_od_tylu)then liczba_wys_szablon=liczba_koniec_szablon;else liczba_wys_szablon=liczba_start_szablon;end; local obiekt="SZABLON"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local liczba_szablon_centrowany=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(liczba_szablon_centrowany)then local naglowek=tabela_parametrow_szablonu[liczba_szablon_centrowany]; if(naglowek)then if(not mw.ustring.match(naglowek,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_szablon_stare=naglowek; spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_szablon))then return false; end; else spis_naglowka_szablon=naglowek; return false; end; end; end; end; return true; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return true; end); if(not wynik)then break; end; else break; end; end; local liczba_start_znacznik;local liczba_koniec_znacznik; local liczba_wys_znacznik=liczba; local norma_kodowania_znacznika=szablonowe_modul.NormaWzoruKodowaniaTekstu("ZNACZNIK"); local spis_naglowka_znacznik; local spis_naglowka_znacznik_stare; while(true)do local kod; liczba_start_znacznik,liczba_koniec_znacznik,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_znacznika,liczba_wys_znacznik,liczba2,czy_od_tylu); if(liczba_start_znacznik)then if(not czy_od_tylu)then liczba_wys_znacznik=liczba_koniec_znacznik;else liczba_wys_znacznik=liczba_start_znacznik;end; local obiekt="ZNACZNIK"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then if(zawartosc)then if(not mw.ustring.match(zawartosc,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_znacznik_stare=zawartosc; spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(zawartosc,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_znacznik))then break; end; else spis_naglowka_znacznik=zawartosc; break; end; end; end; end; else break; end; end; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local liczba_start_dodatni;local liczba_koniec_dodatni; local liczba_wys_dodatni=liczba; local spis_naglowka_dodatni; local spis_naglowka_dodatni_stare; local spis_naglowka_poziom; while(true)do local naglowek; liczba_start_dodatni,liczba_koniec_dodatni,naglowek=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"(=+[^\n]*[^=\n][^\n]*=+)[^%S\n]*",liczba_wys_dodatni,liczba2,czy_od_tylu); if(not liczba_start_dodatni)then break;end; if(not czy_od_tylu)then liczba_wys_dodatni=liczba_koniec_dodatni;else liczba_wys_dodatni=liczba_start_dodatni;end; local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek); if(naglowek)then if(czy_spis_tresci)then spis_naglowka_dodatni_stare=naglowek; spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; spis_naglowka_poziom=poziom_naglowka; if(czy_spis_tresci(spis_naglowka_dodatni))then break; end; else spis_naglowka_dodatni=naglowek; spis_naglowka_poziom=poziom_naglowka; break; end; end; end; if((liczba_start_szablon)or(liczba_start_znacznik)or(liczba_start_dodatni))then local _max_min; if(czy_od_tylu)then _max_min=math.max(math.max(liczba_start_szablon or 0,liczba_start_znacznik or 0),liczba_start_dodatni or 0); else _max_min=math.min(math.min(liczba_start_szablon or #tekst_rozwiniety_calego_artykulu,liczba_start_znacznik or #tekst_rozwiniety_calego_artykulu),liczba_start_dodatni or #tekst_rozwiniety_calego_artykulu); end; if((liczba_start_szablon)and(_max_min==liczba_start_szablon))then local spis_naglowka_szablon_stare=spis_naglowka_szablon_stare or spis_naglowka_szablon; if((not czy_spis_tresci)and(spis_naglowka_szablon))then spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; end; return liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon,spis_naglowka_szablon_stare,nil; elseif((liczba_start_znacznik)and(_max_min==liczba_start_znacznik))then local spis_naglowka_znacznik_stare=spis_naglowka_znacznik_stare or spis_naglowka_znacznik; if((not czy_spis_tresci)and(spis_naglowka_znacznik))then spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_znacznik,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; end; return liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik,spis_naglowka_znacznik_stare,nil; elseif((liczba_start_dodatni)and(_max_min==liczba_start_dodatni))then local spis_naglowka_dodatni_stare=spis_naglowka_dodatni_stare or spis_naglowka_dodatni; if((not czy_spis_tresci)and(spis_naglowka_dodatni))then spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_dodatni,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; end; return liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_poziom; end; end; return nil; end; function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy; local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local linki=function(zawartosc) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="LINKW")or(obiekt=="LINKZ"))then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; elseif(obiekt=="SZABLON")then local szablon,obiekt,kod,dalszy_tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) or(stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) )then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(tab_szablon_link_intelignetny)then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; end); return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; if(obiekt=="SZABLON")then local szablon,obiekt,kod=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return nil;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return nil;end; local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end); return szablon,obiekt,kod; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(zawartosc)then if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; return nil; end; end; function p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_spis,liczba_start_tekst,liczba2,czy_od_tylu) local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; local a1;local a2;local a3;local a4;local a5;local a6;local a7;local a8;local a9;local a10; local dlugosc_tekstu_wyszukiwanego=#tekst_rozwiniety_calego_artykulu; if(not czy_od_tylu)then if((not liczba_start_tekst)or(liczba_start_tekst==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==1))and((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; end; end; end; else if(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego))and((not liczba2)or(liczba2==1)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; end; end; end; end; return liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10; end; function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do --czy_w_petli=true; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then return true; elseif((not czy_element_spisu)and(numer_rodzaju_artykulu))then tak=true; elseif(czy_okladka)then tak=true; end; end; return (not tak); end; function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek+1,liczba_obiekt_start_nowe-1); if((mw.ustring.match(str,"^%s*'+(.+)'+%s*$")) or(mw.ustring.match(str,"^[%*#:;<>]+.*$") or(mw.ustring.match(str,"^[%s%p%w]*$"))) )then return nil;end; local ile_punktowanych=0; local szablonowe_modul=require("Module:Szablonowe"); local _,ile=mw.ustring.gsub(str,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[%*#;:<>]"))or(mw.ustring.match(linia,"^%s*$")))then ile_punktowanych=ile_punktowanych+1; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(numer_rodzaju_artykulu>2))then ile_punktowanych=ile_punktowanych+1; break; end; end; end; end); if(ile_punktowanych>=ile)then return nil; end; str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then if(czy_zeruj)then tab_zmienne.liczba_nie_okladka_artykul=nil; tab_zmienne.liczba_pierwszy_rozdzialowy_artykul=nil; tab_zmienne.czy_ten_rozdzial=nil; --tab_zmienne={["liczba_nie_okladka_artykul"]=liczba_nie_okladka_artykul,["liczba_pierwszy_rozdzialowy_artykul"]=liczba_pierwszy_rozdzialowy_artykul,["czy_ten_rozdzial"]=czy_ten_rozdzial,} end; return true; end; end; return nil; end; end; function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe) local odtylu=liczba_obiekt_start_spac_par; local liczba_start_naglowek;local liczba_koniec_naglowek;local naglowek;local poziom_naglowka; local liczba_start_naglowek_dalej;local liczba_koniec_naglowek_dalej;local naglowek_dalej;local poziom_naglowka_dalej; local czy_fun=false; local czy_pierwszy=nil; local liczba_koniec_naglowek_poczt=nil; while(true)do local liczba_start_naglowek_nowe;local liczba_koniec_naglowek_nowe;local naglowek_nowe;local poziom_naglowka_nowe; if(czy_dodatni==1)then local _; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,_,poziom_naglowka_nowe=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); elseif(czy_dodatni==2)then local str_lista_naglowek; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,str_lista_naglowek,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*#:;<>]+)[^%S\n]*([^\n]-)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and (-#str_lista_naglowek) or nil; else liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^%S\n]*[^\n]-:)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and 0 or nil; end; if(not liczba_start_naglowek_nowe)then break; else poziom_naglowka_nowe=(czy_dodatni==1)and (poziom_naglowka_nowe or 2) or poziom_naglowka_nowe; local czy_tak_spisowe=(czy_dodatni==1) and true or p.CzyTamElementyNieSpisoweArtykularne(mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe),nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); if(czy_tak_spisowe)then if(not czy_pierwszy)then liczba_koniec_naglowek_poczt=liczba_koniec_naglowek_nowe; czy_pierwszy=true; end; if(liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe<liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe+1<=liczba_start_naglowek-1)then local pomiedzy_naglowkami=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_start_naglowek-1); if((pomiedzy_naglowkami)and(not mw.ustring.match(pomiedzy_naglowkami,"^%s*$")) and((czy_dodatni==1) and( ((poziom_naglowka_nowe)and(not poziom_naglowka)) or( ((poziom_naglowka_nowe)and(poziom_naglowka)) and(poziom_naglowka_nowe>=poziom_naglowka) ) ) or( ((czy_dodatni==2)and(poziom_naglowka_nowe<=poziom_naglowka)) or((czy_dodatni~=1)and(czy_dodatni~=2)) ) ) )then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; elseif(liczba_start_naglowek~=liczba_koniec_naglowek_nowe)then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; if(((czy_dodatni==1)or(czy_dodatni==2))and(AnalizowanieSekcjowe)and(not czy_fun))then local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek_nowe); if(not spis_tresci)then --local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); local czy_wynik=AnalizowanieSekcjowe(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); if(czy_wynik)then return false;end; end; czy_fun=true; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; end; end; odtylu=liczba_start_naglowek_nowe; end; return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej; end function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe) local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka,liczba_start_naglowek_dalej=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,1,czy_bez_naglowka,AnalizowanieSekcjowe); ---- if((AnalizowanieSekcjowe)and(liczba_start_naglowek==false))then return nil;end; ---- local str_spacja_lub_zerowy_naglowek=function(tekst) local ile_znalezione_linie_wedlug_wzoru=0; local _,ile=mw.ustring.gsub(tekst,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[^%*#:;<>\n].-:%s*$"))or(mw.ustring.match(linia,"^%s*$")))then ile_znalezione_linie_wedlug_wzoru=ile_znalezione_linie_wedlug_wzoru+1; end; return nil; end); if(ile==ile_znalezione_linie_wedlug_wzoru)then return true;end; return nil; end; if((not liczba_start_naglowek_dalej)and(liczba_start_naglowek))then local liczba_szukaj_odtylu_tekst=liczba_start_naglowek; local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]+)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(not liczba_start_rozdzial)then while(true)do local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; if(not liczba_start_naglowek_temp)then break;end; end; end; elseif(not liczba_start_naglowek)then local liczba_szukaj_odtylu_tekst=liczba_obiekt_start_kolei_par; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]-[^'\n][^\n]-)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(liczba_start_naglowek_temp)then local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek_temp,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not mw.ustring.match(spis_naglowka_szablon,"!%s*$")and(not mw.ustring.match(spis_naglowka_szablon,"%S!")))then ---- local tak=false; local czy_w_petli=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(naglowek_temp,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do czy_w_petli=true; if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then if(numer_rodzaju_artykulu==1)then tak=true; break; end; end; end; end; if((tak)or(not czy_w_petli))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; else local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; end; end; return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka; end; function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul) local liczba_spac=0; if(liczba_start)then local liczba_start_tekst=liczba_start;local liczba_koniec_tekst;local linia; while(true)do local liczba_start_tekst_stare=liczba_start_tekst; linia=nil local liczba_szukaj_odtylu_tekst=liczba_start_tekst; liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); local czy_poczt; if(not liczba_start_tekst)then liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); czy_poczt=true; else czy_poczt=false; end; local rozdzial_dodatki=linia and mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$") or nil; if(rozdzial_dodatki)then local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then return (czy_dalej_rozdzial)and liczba_start or liczba_koniec_tekst,liczba_spac; end; end; local spacja=linia and mw.ustring.match(linia,"^%s*$") or nil; if(spacja)then liczba_spac=liczba_spac+#linia+(czy_poczt and 1 or 2); elseif((not spacja)and(linia))then local czy_spis=nil; local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true); local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; if(not spis_tresci)then liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_start_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1); liczba_start=liczba_start_rozdzial or ((mw.ustring.match(linia,"^[^\n]+:[^%S\n]*$")) and liczba_start_tekst or liczba_koniec_tekst); czy_spis=liczba_start_rozdzial and true or nil; else liczba_start=--[[spis_tresci and]] liczba_start_tekst--[[ or liczba_koniec_tekst]]; czy_spis=true; end; if(not liczba_start_rozdzial)then if(not spis_tresci)then local szablonowe_modul=require("Module:Szablonowe"); if(mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then local tak=false; local czy_okladka=nil; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then tak=true; break; end; end; end; liczba_start=tak and liczba_start_tekst or liczba_start; else liczba_start=liczba_koniec_tekst; end; else liczba_start=--[[spis_tresci and ]]liczba_start_tekst--[[ or liczba_koniec_tekst]]; end; end; return liczba_start,liczba_spac,czy_spis; elseif(not liczba_start_tekst)then return (czy_dalej_rozdzial)and liczba_start or math.min(liczba_pierwszy_rozdzialowy_artykul or 1,liczba_start),liczba_spac,nil; end; end; end; return liczba_start,liczba_spac,nil; end; function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa) local liczba_spisu=liczba_spisowa; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu() while(true)do local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); --- if((liczba_linki_nierozdzialowe_szablonu) and( (przed_tekst=="") or(mw.ustring.match(przed_tekst,"^[%p%s%d%.]*$")) ) )then liczba_spisu=liczba_linki_nierozdzialowe_szablonu; if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); ---- ---- if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(dalszy_tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon_obiekt_temp,szablon_kod_temp=obiekt_szablon,kod_szablon; for szablon,obiekt,kod in iterator do local czy_znajdz=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_znajdz)then local czy_tekst=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(szablon_obiekt_temp,szablon_kod_temp).."[%p%s%d%.]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_tekst)then if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; end; end; else return liczba_spisowa,false; end; szablon_obiekt_temp,szablon_kod_temp=obiekt,kod; end; end; return liczba_spisowa,false; end; end; else return liczba_spisowa,false; end; end; end; function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=nil; local techniczne_modul=require("Module:Techniczne"); local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,1,nil,false,function(naglowek) naglowek=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(naglowek); if(mw.ustring.match(naglowek,"^"..tab_wzor[1].."$"))then return true; end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not liczba_rozdzial_start)then liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"("..tab_wzor[1]..")",liczba_rozdzial_koniec,nil,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)then tak=true;end; end; if(liczba_rozdzial_start)then local liczba_rozdzial_start2,liczba_rozdzial_koniec2; if(not tak)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); else local liczba_rozdzial_start3,liczba_rozdzial_koniec3=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local liczba_rozdzial_start4,liczba_rozdzial_koniec4=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"[^%*#;:<>\n]+[^\n]+",liczba_rozdzial_koniec,nil,true,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- if((liczba_rozdzial_start3)and(liczba_rozdzial_start4))then if(liczba_rozdzial_start3<liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; end; elseif(liczba_rozdzial_start3)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; elseif(liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=nil,nil; end; end; ----- local str_bibliografia=mw.ustring.sub(tekst,liczba_rozdzial_koniec+1,(liczba_rozdzial_start2 and (liczba_rozdzial_start2-1) or #tekst)); if((not str_bibliografia)or(str_bibliografia==""))then return tekst;end; local tekst1=mw.ustring.sub(tekst,1,liczba_rozdzial_koniec); local tekst2=liczba_rozdzial_start2 and mw.ustring.sub(tekst,liczba_rozdzial_start2,#tekst) or ""; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local techniczne_modul=require("Module:Techniczne"); str_bibliografia=mw.ustring.gsub(str_bibliografia,"([^\n]+)",function(linia) local obiekt,kod,dalszy_tekst=mw.ustring.match(linia,"^[%*:;#<>]+%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."([^\n]*)$"); if((obiekt)and(kod)and(dalszy_tekst))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_okladka)and(czy_element_spisu)and(numer_rodzaju_artykulu==1))then return linia; end; end; linia=dalszy_tekst or linia; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if(((tab_wzor[2])and((obiekt=="LINKW")or(obiekt=="LINKZ")))or(obiekt=="SZABLON"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if(czy_element_spisu)then return linia; elseif(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((stronicowyparser_obiekty_modul.szablony_przypisowe[nazwa_szablonu])or(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu]))then return linia; else return ""; end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return ""; end); return wynik; end; end; end; return ""; end); tekst=tekst1..str_bibliografia..tekst2; end; return tekst; end; function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_uruchomiony_analizator_spisu_rzeczy_strony=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); if(not czy_uruchomiony_analizator_spisu_rzeczy_strony)then return nil;end; ---- local liczba_start=nil;local liczba_koniec=nil; ---- local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); ----- local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(); ---- local liczba_obiekt_koniec=1; local liczba_pierwszy_rozdzialowy_artykul=nil; local liczba_nie_okladka_artykul=nil; local tab_nazwa_spisow_przekierowaniowych={}; local liczba_start_rozdzial=1; local liczba_obiekt_start_poprz=nil; local liczba_obiekt_koniec_poprz=nil; local liczba_nie_okladka_artykul_koniec=nil; local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*"; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false); if(liczba_start_szablon)then liczba_obiekt_koniec=liczba_koniec_szablon; --local czy_rozdzial_dodatni=((lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local czy_rozdzial_dodatni; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=((czy_dobry_obiekt)and(((lista_szablon~="")and((przerwa_szablon=="")or((mw.ustring.match(lista_szablon,"^:"))and((przerwa_szablon==">")or(przerwa_szablon=="<")))or(not mw.ustring.match(lista_szablon,"^:"))))or((lista_szablon=="")and(przerwa_szablon=="")and(not mw.ustring.match(dalszy_tekst,"^>"))))); czy_listy=czy_listy or ((czy_dobry_obiekt)and(lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_element_spisu)or(czy_okladka))then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) local czy_element_spisu_temp;local numer_rodzaju_artykulu_temp;local czy_podrecznik_temp;local czy_okladka_temp; local tak=false; for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu_temp)and(not czy_okladka_temp))then if(numer_rodzaju_artykulu_temp==1)then tak=true; break; end; end; end; end; if(tak)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp; end; end; liczba_pierwszy_rozdzialowy_artykul=(not liczba_pierwszy_rozdzialowy_artykul)and(czy_element_spisu and liczba_obiekt_start or nil) or liczba_pierwszy_rozdzialowy_artykul; liczba_nie_okladka_artykul=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and(dalszy_tekst=="")))))) and liczba_obiekt_start or liczba_nie_okladka_artykul; liczba_nie_okladka_artykul_koniec=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and (dalszy_tekst=="")))))) and liczba_obiekt_koniec or liczba_nie_okladka_artykul_koniec; ---- if((czy_element_spisu)and(numer_rodzaju_artykulu==1)and(czy_podrecznik)and(not czy_okladka))then local czy_bez_naglowka=nil; local liczba_obiekt_start_nowe=liczba_nie_okladka_artykul or liczba_obiekt_start; local liczba_obiekt_koniec_nowe=liczba_nie_okladka_artykul_koniec or liczba_obiekt_koniec; local liczba_start_naglowek,liczba_koniec_naglowek,naglowek=nil,nil,nil; local czy_ten_rozdzial=true; local liczba_obiekt_start_nowe_temp=liczba_obiekt_start_nowe; local liczba_spis_tresci_start,liczba_spis_tresci_koniec,naglowka_dodatni_start,spis_naglowka_dodatni_stare_start,poziom_naglowka_start=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_obiekt_start_nowe,liczba_start_rozdzial,true,function(naglowek) if(p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek))then return true;end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local czy_zeruj=(not liczba_spis_tresci_start)and true or false; liczba_obiekt_start_nowe=liczba_spis_tresci_start or liczba_obiekt_start_nowe; local tab_zmienne={ liczba_nie_okladka_artykul=liczba_nie_okladka_artykul, liczba_pierwszy_rozdzialowy_artykul=liczba_pierwszy_rozdzialowy_artykul, czy_ten_rozdzial=czy_ten_rozdzial, }; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; if(not czy_ten_rozdzial)then if(liczba_obiekt_start~=liczba_obiekt_start_nowe_temp)then liczba_start_rozdzial=liczba_obiekt_start_nowe_temp; liczba_obiekt_start_nowe=liczba_obiekt_start; czy_ten_rozdzial=true; tab_zmienne.czy_ten_rozdzial=czy_ten_rozdzial; liczba_start_naglowek,liczba_koniec_naglowek,naglowek=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; end; end; ----- liczba_start_naglowek=( (not liczba_spis_tresci_start) or((poziom_naglowka_start)and(poziom_naglowka))and( ((poziom_naglowka_start>0)and(poziom_naglowka<=0)) or((poziom_naglowka_start<=0)and(poziom_naglowka<=0)and(poziom_naglowka_start>=poziom_naglowka)) or((poziom_naglowka_start>0)and(poziom_naglowka>0)and(poziom_naglowka_start<=poziom_naglowka)) ) ) and liczba_spis_tresci_start or liczba_start_naglowek; if(((not czy_okladka)or((czy_okladka)and(lista_szablon~=""))or(liczba_start_naglowek))and(czy_ten_rozdzial))then ---- czy_bez_naglowka=((not liczba_start_naglowek)or((liczba_obiekt_koniec_poprz or 1)<=(liczba_start_rozdzial or 1))) and true or false; ---- if(liczba_start_naglowek)then local liczba_przed_rozdzialem;local czy_znajdz; liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start_naglowek); local odtylu_dalej=--[[liczba_spis_tresci or]] liczba_start_naglowek; local liczba_start_naglowek_przed=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu_dalej,liczba_start_rozdzial,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_start_naglowek_przed)then if(liczba_przed_rozdzialem>=liczba_start_naglowek_przed)then liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; else liczba_start=liczba_spis_tresci; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; end; else liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; else liczba_start=liczba_start_sugerowane; end; end; else local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,2,czy_bez_naglowka,function(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek_nowe)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek_nowe+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_obiekt_start_nowe-1); str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then return true; end; end; return nil; end); if(liczba_start_naglowek)then liczba_obiekt_start_nowe=liczba_start_naglowek; end; --[[]] local liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_obiekt_start_nowe); liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; end; end; break; else liczba_start_rozdzial=liczba_obiekt_koniec_nowe; liczba_nie_okladka_artykul_koniec=nil; end; liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; else liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; end; end; else break; end; end; if(not liczba_start)then return "";end; local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*:#;<>]?)([^\n]-)"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_obiekt_start_od_tylu,liczba_start,true); ---- if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=(czy_dobry_obiekt)and((lista_szablon~="")or((lista_szablon=="")and(przerwa_szablon==""))); local czy_listy=czy_listy or (czy_dobry_obiekt)and((lista_szablon=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_koniec=liczba_koniec_szablon; local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu=nil;local numer_rodzaju_artykulu=nil;local czy_podrecznik=nil; if(liczba_start<=liczba_obiekt_start)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(not czy_element_spisu)then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; --if(((not czy_spis_tresci)and(lista_szablon~=""))or((czy_spis_tresci)and((lista_szablon=="")and(przerwa_szablon==""))))then czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---elseif((lista_szablon=="")and(przerwa_szablon==""))then ---czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---end; if(czy_element_spisu)then break;end; end; end; end; end; if(czy_element_spisu)then local function IleKoniec() while(true)do local poczatek_nierozdzalowe=liczba_obiekt_koniec; local liczba_start_nieszablon_nielink_nierozdzialowa,liczba_koniec_nieszablon_nielink_nierozdzialowa,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*:;#<>'\n]+[^\n]*)",poczatek_nierozdzalowe,nil,false) if(liczba_start_nieszablon_nielink_nierozdzialowa)then local rozdzial_dodatki=mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$"); if(rozdzial_dodatki)then local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; end; end; local czy_spacje=mw.ustring.match(linia,"^%s*$"); if(not czy_spacje)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; elseif(czy_spacje)then liczba_obiekt_koniec=liczba_koniec_nieszablon_nielink_nierozdzialowa; --else -- liczba_koniec=#tekst_rozwiniety_calego_artykulu; -- return; end; else liczba_koniec=#tekst_rozwiniety_calego_artykulu; break; end; end; end; IleKoniec(); break; end; end; else break; end; end; if(liczba_koniec)then local koniec_dodatnie_rozdzialy=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial_nazwa,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,koniec_dodatnie_rozdzialy,liczba_start,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)and(liczba_rozdzial_start>=liczba_koniec)then koniec_dodatnie_rozdzialy=liczba_rozdzial_start; local start=1; while(true)do local start_szablon,koniec_szablon,obiekt_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(rozdzial,szablon_normy_kodowania_szablonu,start); local koniec_obiekt;local kod_obiekt;local obiekt=nil; if(start_szablon)then if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then --koniec_obiekt=koniec_szablon; local kod=kod_szablon; local obiekt=obiekt_szablon; local kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(czy_element)then liczba_koniec=liczba_rozdzial_koniec; break; end; end; start=koniec_szablon; else break; end; end; else break; end; end; end; if(not liczba_koniec)then return "";end; if(liczba_start>=liczba_koniec)then return "";end; --- Licencja ---- local licencja_koniec,szablon_licencja=p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_koniec,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((licencja_koniec)and(licencja_koniec>=liczba_koniec))then liczba_koniec=licencja_koniec; end; ----- local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); ----- for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); end; --mw.log(tekst) --- Licencja ---- --mw.log(liczba_start,liczba_koniec,"TYTANw",pelna_nazwa_spisu_tresci_szablonowa) --mw.log("TYTAN1",tekst,"TYTAN2") --return nil; --local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); return tekst; end; return p; aomuao41korjks15qlu222d4yzrkmg2 544753 544752 2026-05-31T14:42:13Z Persino 2851 544753 Scribunto text/plain local p={}; function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=false; local techniczne_modul=require("Module:Techniczne"); linia=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(linia); for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci) do tak=tak or (((not spacje_na_poczatku) or (not mw.ustring.match(linia,"^%s+"))) and (mw.ustring.match(linia,"^"..p_wzor.."$"))); if(tak)then return true;end; end; return nil; end; function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local techniczne_modul=require("Module:Techniczne"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^\n]+)",liczba_od,liczba_do,true); if(liczba_start_rozdzial)then rozdzial=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(rozdzial); local czy_zerowy_spis_rzeczy; for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci)do czy_zerowy_spis_rzeczy=mw.ustring.match(rozdzial,p_wzor); if(czy_zerowy_spis_rzeczy)then break;end; end; if((czy_zerowy_spis_rzeczy)and(not mw.ustring.match(rozdzial,"^%s+")))then return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial; else liczba_od=liczba_start_rozdzial; end; else return; end; end; return nil; end; function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return;end; return true; end); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa)and(zawartosc))then if(nazwa=="center")then return true; end; end; end; end; function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"("..wzor..")",liczba_od,liczba_do,jak); if(liczba_start_rozdzial)then if((not mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))and(not mw.ustring.match(linia,"^[%*#:;<>]")))then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon,obiekt,kod,poziom_iteracji=iterator(); local wynik=((szablon)and(obiekt)and(kod))and p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(not wynik)then local rozdzial,czy_standardowe_rozdzialy=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((rozdzial)and(czy_standardowe_rozdzialy))then return liczba_start_rozdzial,liczba_koniec_rozdzial,linia; end; end; end; if(jak)then liczba_od=liczba_start_rozdzial;else liczba_od=liczba_koniec_rozdzial;end; else return; end; end; return nil; end; function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA,nil,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych); if(not kom)then local tab=((tab_2 and tab_2[1]) and tab_2 or nil); if(tab)then if(numer_rodzaju_artykulu==1)then local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false); local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s")))) local function StronyWstepu(artykul) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=true; for _,wzor in ipairs(stronicowyparser_obiekty_modul.artykularne_niespisowe) do tak=tak and (not mw.ustring.match(artykul,wzor)); if(not tak)then return tak;end; end; return tak; end; if((czy_glowny_spis_tresci)and(artykul==""))then return false,numer_rodzaju_artykulu,czy_podrecznik,false; else if((czy_usun_okladka)--[[or(numer_rodzaju_artykulu>1)]]or(--[[(numer_rodzaju_artykulu==1)and]](artykul~="")and(StronyWstepu(artykul))))then return true,numer_rodzaju_artykulu,czy_podrecznik,false; else return true,numer_rodzaju_artykulu,czy_podrecznik,true; end; end; else return true,numer_rodzaju_artykulu,--[[czy_podrecznik]]false,false; end; end; end; return false,nil; end; function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(obiekt=="SZABLON")then local szablonowe_modul=require("Module:Szablonowe"); local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) ---- if(nazwa_szablonu=="SpisTreści")then return true,1; else local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]; if(tabela_spisu)then local parametr_linku; if(tabela_spisu[1]==true)then local numer_link=tabela_spisu["numer_link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; else local numer_link=tabela_spisu["link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; end; if(parametr_linku)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(parametr_linku,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; end; end; end; end; end); if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; return false; end; function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); if((not czy_element_spisu)and(not numer_rodzaju_artykulu))then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); end; return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; function p.SzukanieNaPodstawieWzoru(str,wzor,liczba,liczba2,czy_od_tylu,jak) if(not czy_od_tylu)then if((liczba)and(liczba2)and(liczba>liczba2))then return;end; local a,b,c,d,e,f,g,h,i,j,k,l=mw.ustring.find(str,wzor,liczba); if((a)and(b)and(a>b))then return;end; if((not liczba2)or(b<=liczba2))then return a,b,c,d,e,f,g,h,i,j,k,l; end; return nil; else if((liczba)and(liczba2)and(liczba<liczba2))then return;end; local liczba_start=liczba2 or 1; local a,b,c,d,e,f,g,h,i,j,k,l=nil,nil,nil,nil,nil,nil,nil; while(true)do local a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1=mw.ustring.find(str,wzor,liczba_start); if((a1)and(b1)and(a1>b1))then return;end; if((not b1)or((b1)and(b1>liczba)))then return a,b,c,d,e,f,g,h,i,j,k,l; elseif((b1)and(b1==liczba))then return a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; end; a,b,c,d,e,f,g,h,i,j,k,l=a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; if(not jak)then if(a1==b1)then liczba_start=b1+1; else liczba_start=b1; end; else liczba_start=b1+1; end; end; end; end; function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); while(true)do local liczba_start_szablon,liczba_koniec_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,szablon_normy_kodowania_szablonu,liczba_obiekt_start_od_tylu,liczba_start,true); if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local obiekt="SZABLON"; local kod=kod_szablon and tonumber(kod_szablon) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; ---- local liczba_koniec_szablon,norma_wzoru=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if(nazwa_szablonu=="Licencja")then return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end; end); if(liczba_koniec_szablon)then return liczba_koniec_szablon,norma_wzoru; end; elseif(not liczba_start_szablon)then return nil; end; end; end; function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba,liczba2,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local liczba_start_szablon;local liczba_koniec_szablon; local liczba_wys_szablon=liczba; local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); local spis_naglowka_szablon; local spis_naglowka_szablon_stare; while(true)do local kod; liczba_start_szablon,liczba_koniec_szablon,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_szablonu,liczba_wys_szablon,liczba2,czy_od_tylu); if(liczba_start_szablon)then if(not czy_od_tylu)then liczba_wys_szablon=liczba_koniec_szablon;else liczba_wys_szablon=liczba_start_szablon;end; local obiekt="SZABLON"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local liczba_szablon_centrowany=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(liczba_szablon_centrowany)then local naglowek=tabela_parametrow_szablonu[liczba_szablon_centrowany]; if(naglowek)then if(not mw.ustring.match(naglowek,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_szablon_stare=naglowek; spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_szablon))then return false; end; else spis_naglowka_szablon=naglowek; return false; end; end; end; end; return true; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return true; end); if(not wynik)then break; end; else break; end; end; local liczba_start_znacznik;local liczba_koniec_znacznik; local liczba_wys_znacznik=liczba; local norma_kodowania_znacznika=szablonowe_modul.NormaWzoruKodowaniaTekstu("ZNACZNIK"); local spis_naglowka_znacznik; local spis_naglowka_znacznik_stare; while(true)do local kod; liczba_start_znacznik,liczba_koniec_znacznik,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_znacznika,liczba_wys_znacznik,liczba2,czy_od_tylu); if(liczba_start_znacznik)then if(not czy_od_tylu)then liczba_wys_znacznik=liczba_koniec_znacznik;else liczba_wys_znacznik=liczba_start_znacznik;end; local obiekt="ZNACZNIK"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then if(zawartosc)then if(not mw.ustring.match(zawartosc,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_znacznik_stare=zawartosc; spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(zawartosc,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_znacznik))then break; end; else spis_naglowka_znacznik=zawartosc; break; end; end; end; end; else break; end; end; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local liczba_start_dodatni;local liczba_koniec_dodatni; local liczba_wys_dodatni=liczba; local spis_naglowka_dodatni; local spis_naglowka_dodatni_stare; local spis_naglowka_poziom; while(true)do local naglowek; liczba_start_dodatni,liczba_koniec_dodatni,naglowek=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"(=+[^\n]*[^=\n][^\n]*=+)[^%S\n]*",liczba_wys_dodatni,liczba2,czy_od_tylu); if(not liczba_start_dodatni)then break;end; if(not czy_od_tylu)then liczba_wys_dodatni=liczba_koniec_dodatni;else liczba_wys_dodatni=liczba_start_dodatni;end; local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek); if(naglowek)then if(czy_spis_tresci)then spis_naglowka_dodatni_stare=naglowek; spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; spis_naglowka_poziom=poziom_naglowka; if(czy_spis_tresci(spis_naglowka_dodatni))then break; end; else spis_naglowka_dodatni=naglowek; spis_naglowka_poziom=poziom_naglowka; break; end; end; end; if((liczba_start_szablon)or(liczba_start_znacznik)or(liczba_start_dodatni))then local _max_min; if(czy_od_tylu)then _max_min=math.max(math.max(liczba_start_szablon or 0,liczba_start_znacznik or 0),liczba_start_dodatni or 0); else _max_min=math.min(math.min(liczba_start_szablon or #tekst_rozwiniety_calego_artykulu,liczba_start_znacznik or #tekst_rozwiniety_calego_artykulu),liczba_start_dodatni or #tekst_rozwiniety_calego_artykulu); end; if((liczba_start_szablon)and(_max_min==liczba_start_szablon))then local spis_naglowka_szablon_stare=spis_naglowka_szablon_stare or spis_naglowka_szablon; if((not czy_spis_tresci)and(spis_naglowka_szablon))then spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; end; return liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon,spis_naglowka_szablon_stare,nil; elseif((liczba_start_znacznik)and(_max_min==liczba_start_znacznik))then local spis_naglowka_znacznik_stare=spis_naglowka_znacznik_stare or spis_naglowka_znacznik; if((not czy_spis_tresci)and(spis_naglowka_znacznik))then spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_znacznik,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; end; return liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik,spis_naglowka_znacznik_stare,nil; elseif((liczba_start_dodatni)and(_max_min==liczba_start_dodatni))then local spis_naglowka_dodatni_stare=spis_naglowka_dodatni_stare or spis_naglowka_dodatni; if((not czy_spis_tresci)and(spis_naglowka_dodatni))then spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_dodatni,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; end; return liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_poziom; end; end; return nil; end; function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy; local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local linki=function(zawartosc) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="LINKW")or(obiekt=="LINKZ"))then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; elseif(obiekt=="SZABLON")then local szablon,obiekt,kod,dalszy_tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) or(stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) )then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(tab_szablon_link_intelignetny)then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; end); return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; if(obiekt=="SZABLON")then local szablon,obiekt,kod=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return nil;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return nil;end; local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end); return szablon,obiekt,kod; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(zawartosc)then if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; return nil; end; end; function p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_spis,liczba_start_tekst,liczba2,czy_od_tylu) local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; local a1;local a2;local a3;local a4;local a5;local a6;local a7;local a8;local a9;local a10; local dlugosc_tekstu_wyszukiwanego=#tekst_rozwiniety_calego_artykulu; if(not czy_od_tylu)then if((not liczba_start_tekst)or(liczba_start_tekst==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==1))and((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; end; end; end; else if(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego))and((not liczba2)or(liczba2==1)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; end; end; end; end; return liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10; end; function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do --czy_w_petli=true; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then return true; elseif((not czy_element_spisu)and(numer_rodzaju_artykulu))then tak=true; elseif(czy_okladka)then tak=true; end; end; return (not tak); end; function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek+1,liczba_obiekt_start_nowe-1); if((mw.ustring.match(str,"^%s*'+(.+)'+%s*$")) or(mw.ustring.match(str,"^[%*#:;<>]+.*$") or(mw.ustring.match(str,"^[%s%p%w]*$"))) )then return nil;end; local ile_punktowanych=0; local szablonowe_modul=require("Module:Szablonowe"); local _,ile=mw.ustring.gsub(str,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[%*#;:<>]"))or(mw.ustring.match(linia,"^%s*$")))then ile_punktowanych=ile_punktowanych+1; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(numer_rodzaju_artykulu>2))then ile_punktowanych=ile_punktowanych+1; break; end; end; end; end); if(ile_punktowanych>=ile)then return nil; end; str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then if(czy_zeruj)then tab_zmienne.liczba_nie_okladka_artykul=nil; tab_zmienne.liczba_pierwszy_rozdzialowy_artykul=nil; tab_zmienne.czy_ten_rozdzial=nil; --tab_zmienne={["liczba_nie_okladka_artykul"]=liczba_nie_okladka_artykul,["liczba_pierwszy_rozdzialowy_artykul"]=liczba_pierwszy_rozdzialowy_artykul,["czy_ten_rozdzial"]=czy_ten_rozdzial,} end; return true; end; end; return nil; end; end; function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe) local odtylu=liczba_obiekt_start_spac_par; local liczba_start_naglowek;local liczba_koniec_naglowek;local naglowek;local poziom_naglowka; local liczba_start_naglowek_dalej;local liczba_koniec_naglowek_dalej;local naglowek_dalej;local poziom_naglowka_dalej; local czy_fun=false; local czy_pierwszy=nil; local liczba_koniec_naglowek_poczt=nil; while(true)do local liczba_start_naglowek_nowe;local liczba_koniec_naglowek_nowe;local naglowek_nowe;local poziom_naglowka_nowe; if(czy_dodatni==1)then local _; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,_,poziom_naglowka_nowe=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); elseif(czy_dodatni==2)then local str_lista_naglowek; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,str_lista_naglowek,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*#:;<>]+)[^%S\n]*([^\n]-)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and (-#str_lista_naglowek) or nil; else liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^%S\n]*[^\n]-:)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and 0 or nil; end; if(not liczba_start_naglowek_nowe)then break; else poziom_naglowka_nowe=(czy_dodatni==1)and (poziom_naglowka_nowe or 2) or poziom_naglowka_nowe; local czy_tak_spisowe=(czy_dodatni==1) and true or p.CzyTamElementyNieSpisoweArtykularne(mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe),nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); if(czy_tak_spisowe)then if(not czy_pierwszy)then liczba_koniec_naglowek_poczt=liczba_koniec_naglowek_nowe; czy_pierwszy=true; end; if(liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe<liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe+1<=liczba_start_naglowek-1)then local pomiedzy_naglowkami=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_start_naglowek-1); if((pomiedzy_naglowkami)and(not mw.ustring.match(pomiedzy_naglowkami,"^%s*$")) and((czy_dodatni==1) and( ((poziom_naglowka_nowe)and(not poziom_naglowka)) or( ((poziom_naglowka_nowe)and(poziom_naglowka)) and(poziom_naglowka_nowe>=poziom_naglowka) ) ) or( ((czy_dodatni==2)and(poziom_naglowka_nowe<=poziom_naglowka)) or((czy_dodatni~=1)and(czy_dodatni~=2)) ) ) )then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; elseif(liczba_start_naglowek~=liczba_koniec_naglowek_nowe)then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; if(((czy_dodatni==1)or(czy_dodatni==2))and(AnalizowanieSekcjowe)and(not czy_fun))then local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek_nowe); if(not spis_tresci)then --local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); local czy_wynik=AnalizowanieSekcjowe(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); if(czy_wynik)then return false;end; end; czy_fun=true; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; end; end; odtylu=liczba_start_naglowek_nowe; end; return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej; end function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe) local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka,liczba_start_naglowek_dalej=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,1,czy_bez_naglowka,AnalizowanieSekcjowe); ---- if((AnalizowanieSekcjowe)and(liczba_start_naglowek==false))then return nil;end; ---- local str_spacja_lub_zerowy_naglowek=function(tekst) local ile_znalezione_linie_wedlug_wzoru=0; local _,ile=mw.ustring.gsub(tekst,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[^%*#:;<>\n].-:%s*$"))or(mw.ustring.match(linia,"^%s*$")))then ile_znalezione_linie_wedlug_wzoru=ile_znalezione_linie_wedlug_wzoru+1; end; return nil; end); if(ile==ile_znalezione_linie_wedlug_wzoru)then return true;end; return nil; end; if((not liczba_start_naglowek_dalej)and(liczba_start_naglowek))then local liczba_szukaj_odtylu_tekst=liczba_start_naglowek; local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]+)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(not liczba_start_rozdzial)then while(true)do local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; if(not liczba_start_naglowek_temp)then break;end; end; end; elseif(not liczba_start_naglowek)then local liczba_szukaj_odtylu_tekst=liczba_obiekt_start_kolei_par; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]-[^'\n][^\n]-)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(liczba_start_naglowek_temp)then local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek_temp,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not mw.ustring.match(spis_naglowka_szablon,"!%s*$")and(not mw.ustring.match(spis_naglowka_szablon,"%S!")))then ---- local tak=false; local czy_w_petli=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(naglowek_temp,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do czy_w_petli=true; if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then if(numer_rodzaju_artykulu==1)then tak=true; break; end; end; end; end; if((tak)or(not czy_w_petli))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; else local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; end; end; end; return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka; end; function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul) local liczba_spac=0; if(liczba_start)then local liczba_start_tekst=liczba_start;local liczba_koniec_tekst;local linia; while(true)do local liczba_start_tekst_stare=liczba_start_tekst; linia=nil local liczba_szukaj_odtylu_tekst=liczba_start_tekst; liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); local czy_poczt; if(not liczba_start_tekst)then liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); czy_poczt=true; else czy_poczt=false; end; local rozdzial_dodatki=linia and mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$") or nil; if(rozdzial_dodatki)then local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then return (czy_dalej_rozdzial)and liczba_start or liczba_koniec_tekst,liczba_spac; end; end; local spacja=linia and mw.ustring.match(linia,"^%s*$") or nil; if(spacja)then liczba_spac=liczba_spac+#linia+(czy_poczt and 1 or 2); elseif((not spacja)and(linia))then local czy_spis=nil; local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true); local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; if(not spis_tresci)then liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_start_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1); liczba_start=liczba_start_rozdzial or ((mw.ustring.match(linia,"^[^\n]+:[^%S\n]*$")) and liczba_start_tekst or liczba_koniec_tekst); czy_spis=liczba_start_rozdzial and true or nil; else liczba_start=--[[spis_tresci and]] liczba_start_tekst--[[ or liczba_koniec_tekst]]; czy_spis=true; end; if(not liczba_start_rozdzial)then if(not spis_tresci)then local szablonowe_modul=require("Module:Szablonowe"); if(mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then local tak=false; local czy_okladka=nil; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then tak=true; break; end; end; end; liczba_start=tak and liczba_start_tekst or liczba_start; else liczba_start=liczba_koniec_tekst; end; else liczba_start=--[[spis_tresci and ]]liczba_start_tekst--[[ or liczba_koniec_tekst]]; end; end; return liczba_start,liczba_spac,czy_spis; elseif(not liczba_start_tekst)then return (czy_dalej_rozdzial)and liczba_start or math.min(liczba_pierwszy_rozdzialowy_artykul or 1,liczba_start),liczba_spac,nil; end; end; end; return liczba_start,liczba_spac,nil; end; function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa) local liczba_spisu=liczba_spisowa; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu() while(true)do local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); --- if((liczba_linki_nierozdzialowe_szablonu) and( (przed_tekst=="") or(mw.ustring.match(przed_tekst,"^[%p%s%d%.]*$")) ) )then liczba_spisu=liczba_linki_nierozdzialowe_szablonu; if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); ---- ---- if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(dalszy_tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon_obiekt_temp,szablon_kod_temp=obiekt_szablon,kod_szablon; for szablon,obiekt,kod in iterator do local czy_znajdz=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_znajdz)then local czy_tekst=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(szablon_obiekt_temp,szablon_kod_temp).."[%p%s%d%.]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_tekst)then if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; end; end; else return liczba_spisowa,false; end; szablon_obiekt_temp,szablon_kod_temp=obiekt,kod; end; end; return liczba_spisowa,false; end; end; else return liczba_spisowa,false; end; end; end; function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=nil; local techniczne_modul=require("Module:Techniczne"); local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,1,nil,false,function(naglowek) naglowek=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(naglowek); if(mw.ustring.match(naglowek,"^"..tab_wzor[1].."$"))then return true; end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not liczba_rozdzial_start)then liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"("..tab_wzor[1]..")",liczba_rozdzial_koniec,nil,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)then tak=true;end; end; if(liczba_rozdzial_start)then local liczba_rozdzial_start2,liczba_rozdzial_koniec2; if(not tak)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); else local liczba_rozdzial_start3,liczba_rozdzial_koniec3=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local liczba_rozdzial_start4,liczba_rozdzial_koniec4=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"[^%*#;:<>\n]+[^\n]+",liczba_rozdzial_koniec,nil,true,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- if((liczba_rozdzial_start3)and(liczba_rozdzial_start4))then if(liczba_rozdzial_start3<liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; end; elseif(liczba_rozdzial_start3)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; elseif(liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=nil,nil; end; end; ----- local str_bibliografia=mw.ustring.sub(tekst,liczba_rozdzial_koniec+1,(liczba_rozdzial_start2 and (liczba_rozdzial_start2-1) or #tekst)); if((not str_bibliografia)or(str_bibliografia==""))then return tekst;end; local tekst1=mw.ustring.sub(tekst,1,liczba_rozdzial_koniec); local tekst2=liczba_rozdzial_start2 and mw.ustring.sub(tekst,liczba_rozdzial_start2,#tekst) or ""; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local techniczne_modul=require("Module:Techniczne"); str_bibliografia=mw.ustring.gsub(str_bibliografia,"([^\n]+)",function(linia) local obiekt,kod,dalszy_tekst=mw.ustring.match(linia,"^[%*:;#<>]+%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."([^\n]*)$"); if((obiekt)and(kod)and(dalszy_tekst))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_okladka)and(czy_element_spisu)and(numer_rodzaju_artykulu==1))then return linia; end; end; linia=dalszy_tekst or linia; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if(((tab_wzor[2])and((obiekt=="LINKW")or(obiekt=="LINKZ")))or(obiekt=="SZABLON"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if(czy_element_spisu)then return linia; elseif(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((stronicowyparser_obiekty_modul.szablony_przypisowe[nazwa_szablonu])or(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu]))then return linia; else return ""; end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return ""; end); return wynik; end; end; end; return ""; end); tekst=tekst1..str_bibliografia..tekst2; end; return tekst; end; function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_uruchomiony_analizator_spisu_rzeczy_strony=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); if(not czy_uruchomiony_analizator_spisu_rzeczy_strony)then return nil;end; ---- local liczba_start=nil;local liczba_koniec=nil; ---- local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); ----- local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(); ---- local liczba_obiekt_koniec=1; local liczba_pierwszy_rozdzialowy_artykul=nil; local liczba_nie_okladka_artykul=nil; local tab_nazwa_spisow_przekierowaniowych={}; local liczba_start_rozdzial=1; local liczba_obiekt_start_poprz=nil; local liczba_obiekt_koniec_poprz=nil; local liczba_nie_okladka_artykul_koniec=nil; local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*"; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false); if(liczba_start_szablon)then liczba_obiekt_koniec=liczba_koniec_szablon; --local czy_rozdzial_dodatni=((lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local czy_rozdzial_dodatni; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=((czy_dobry_obiekt)and(((lista_szablon~="")and((przerwa_szablon=="")or((mw.ustring.match(lista_szablon,"^:"))and((przerwa_szablon==">")or(przerwa_szablon=="<")))or(not mw.ustring.match(lista_szablon,"^:"))))or((lista_szablon=="")and(przerwa_szablon=="")and(not mw.ustring.match(dalszy_tekst,"^>"))))); czy_listy=czy_listy or ((czy_dobry_obiekt)and(lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_element_spisu)or(czy_okladka))then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) local czy_element_spisu_temp;local numer_rodzaju_artykulu_temp;local czy_podrecznik_temp;local czy_okladka_temp; local tak=false; for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu_temp)and(not czy_okladka_temp))then if(numer_rodzaju_artykulu_temp==1)then tak=true; break; end; end; end; end; if(tak)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp; end; end; liczba_pierwszy_rozdzialowy_artykul=(not liczba_pierwszy_rozdzialowy_artykul)and(czy_element_spisu and liczba_obiekt_start or nil) or liczba_pierwszy_rozdzialowy_artykul; liczba_nie_okladka_artykul=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and(dalszy_tekst=="")))))) and liczba_obiekt_start or liczba_nie_okladka_artykul; liczba_nie_okladka_artykul_koniec=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and (dalszy_tekst=="")))))) and liczba_obiekt_koniec or liczba_nie_okladka_artykul_koniec; ---- if((czy_element_spisu)and(numer_rodzaju_artykulu==1)and(czy_podrecznik)and(not czy_okladka))then local czy_bez_naglowka=nil; local liczba_obiekt_start_nowe=liczba_nie_okladka_artykul or liczba_obiekt_start; local liczba_obiekt_koniec_nowe=liczba_nie_okladka_artykul_koniec or liczba_obiekt_koniec; local liczba_start_naglowek,liczba_koniec_naglowek,naglowek=nil,nil,nil; local czy_ten_rozdzial=true; local liczba_obiekt_start_nowe_temp=liczba_obiekt_start_nowe; local liczba_spis_tresci_start,liczba_spis_tresci_koniec,naglowka_dodatni_start,spis_naglowka_dodatni_stare_start,poziom_naglowka_start=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_obiekt_start_nowe,liczba_start_rozdzial,true,function(naglowek) if(p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek))then return true;end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local czy_zeruj=(not liczba_spis_tresci_start)and true or false; liczba_obiekt_start_nowe=liczba_spis_tresci_start or liczba_obiekt_start_nowe; local tab_zmienne={ liczba_nie_okladka_artykul=liczba_nie_okladka_artykul, liczba_pierwszy_rozdzialowy_artykul=liczba_pierwszy_rozdzialowy_artykul, czy_ten_rozdzial=czy_ten_rozdzial, }; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; if(not czy_ten_rozdzial)then if(liczba_obiekt_start~=liczba_obiekt_start_nowe_temp)then liczba_start_rozdzial=liczba_obiekt_start_nowe_temp; liczba_obiekt_start_nowe=liczba_obiekt_start; czy_ten_rozdzial=true; tab_zmienne.czy_ten_rozdzial=czy_ten_rozdzial; liczba_start_naglowek,liczba_koniec_naglowek,naglowek=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; end; end; ----- liczba_start_naglowek=( (not liczba_spis_tresci_start) or((poziom_naglowka_start)and(poziom_naglowka))and( ((poziom_naglowka_start>0)and(poziom_naglowka<=0)) or((poziom_naglowka_start<=0)and(poziom_naglowka<=0)and(poziom_naglowka_start>=poziom_naglowka)) or((poziom_naglowka_start>0)and(poziom_naglowka>0)and(poziom_naglowka_start<=poziom_naglowka)) ) ) and liczba_spis_tresci_start or liczba_start_naglowek; if(((not czy_okladka)or((czy_okladka)and(lista_szablon~=""))or(liczba_start_naglowek))and(czy_ten_rozdzial))then ---- czy_bez_naglowka=((not liczba_start_naglowek)or((liczba_obiekt_koniec_poprz or 1)<=(liczba_start_rozdzial or 1))) and true or false; ---- if(liczba_start_naglowek)then local liczba_przed_rozdzialem;local czy_znajdz; liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start_naglowek); local odtylu_dalej=--[[liczba_spis_tresci or]] liczba_start_naglowek; local liczba_start_naglowek_przed=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu_dalej,liczba_start_rozdzial,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_start_naglowek_przed)then if(liczba_przed_rozdzialem>=liczba_start_naglowek_przed)then liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; else liczba_start=liczba_spis_tresci; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; end; else liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; else liczba_start=liczba_start_sugerowane; end; end; else local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,2,czy_bez_naglowka,function(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek_nowe)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek_nowe+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_obiekt_start_nowe-1); str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then return true; end; end; return nil; end); if(liczba_start_naglowek)then liczba_obiekt_start_nowe=liczba_start_naglowek; end; --[[]] local liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_obiekt_start_nowe); liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; end; end; break; else liczba_start_rozdzial=liczba_obiekt_koniec_nowe; liczba_nie_okladka_artykul_koniec=nil; end; liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; else liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; end; end; else break; end; end; if(not liczba_start)then return "";end; local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*:#;<>]?)([^\n]-)"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_obiekt_start_od_tylu,liczba_start,true); ---- if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=(czy_dobry_obiekt)and((lista_szablon~="")or((lista_szablon=="")and(przerwa_szablon==""))); local czy_listy=czy_listy or (czy_dobry_obiekt)and((lista_szablon=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_koniec=liczba_koniec_szablon; local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu=nil;local numer_rodzaju_artykulu=nil;local czy_podrecznik=nil; if(liczba_start<=liczba_obiekt_start)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(not czy_element_spisu)then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; --if(((not czy_spis_tresci)and(lista_szablon~=""))or((czy_spis_tresci)and((lista_szablon=="")and(przerwa_szablon==""))))then czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---elseif((lista_szablon=="")and(przerwa_szablon==""))then ---czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---end; if(czy_element_spisu)then break;end; end; end; end; end; if(czy_element_spisu)then local function IleKoniec() while(true)do local poczatek_nierozdzalowe=liczba_obiekt_koniec; local liczba_start_nieszablon_nielink_nierozdzialowa,liczba_koniec_nieszablon_nielink_nierozdzialowa,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*:;#<>'\n]+[^\n]*)",poczatek_nierozdzalowe,nil,false) if(liczba_start_nieszablon_nielink_nierozdzialowa)then local rozdzial_dodatki=mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$"); if(rozdzial_dodatki)then local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; end; end; local czy_spacje=mw.ustring.match(linia,"^%s*$"); if(not czy_spacje)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; elseif(czy_spacje)then liczba_obiekt_koniec=liczba_koniec_nieszablon_nielink_nierozdzialowa; --else -- liczba_koniec=#tekst_rozwiniety_calego_artykulu; -- return; end; else liczba_koniec=#tekst_rozwiniety_calego_artykulu; break; end; end; end; IleKoniec(); break; end; end; else break; end; end; if(liczba_koniec)then local koniec_dodatnie_rozdzialy=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial_nazwa,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,koniec_dodatnie_rozdzialy,liczba_start,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)and(liczba_rozdzial_start>=liczba_koniec)then koniec_dodatnie_rozdzialy=liczba_rozdzial_start; local start=1; while(true)do local start_szablon,koniec_szablon,obiekt_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(rozdzial,szablon_normy_kodowania_szablonu,start); local koniec_obiekt;local kod_obiekt;local obiekt=nil; if(start_szablon)then if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then --koniec_obiekt=koniec_szablon; local kod=kod_szablon; local obiekt=obiekt_szablon; local kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(czy_element)then liczba_koniec=liczba_rozdzial_koniec; break; end; end; start=koniec_szablon; else break; end; end; else break; end; end; end; if(not liczba_koniec)then return "";end; if(liczba_start>=liczba_koniec)then return "";end; --- Licencja ---- local licencja_koniec,szablon_licencja=p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_koniec,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((licencja_koniec)and(licencja_koniec>=liczba_koniec))then liczba_koniec=licencja_koniec; end; ----- local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); ----- for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); end; --mw.log(tekst) --- Licencja ---- --mw.log(liczba_start,liczba_koniec,"TYTANw",pelna_nazwa_spisu_tresci_szablonowa) --mw.log("TYTAN1",tekst,"TYTAN2") --return nil; --local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); return tekst; end; return p; g5xjmlgonphq4oshzrdz8rb2ffrux3t 544754 544753 2026-05-31T15:18:31Z Persino 2851 544754 Scribunto text/plain local p={}; function p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,spacje_na_poczatku) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=false; local techniczne_modul=require("Module:Techniczne"); linia=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(linia); for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci) do tak=tak or (((not spacje_na_poczatku) or (not mw.ustring.match(linia,"^%s+"))) and (mw.ustring.match(linia,"^"..p_wzor.."$"))); if(tak)then return true;end; end; return nil; end; function p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local techniczne_modul=require("Module:Techniczne"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^\n]+)",liczba_od,liczba_do,true); if(liczba_start_rozdzial)then rozdzial=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(rozdzial); local czy_zerowy_spis_rzeczy; for _,p_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_spis_tresci)do czy_zerowy_spis_rzeczy=mw.ustring.match(rozdzial,p_wzor); if(czy_zerowy_spis_rzeczy)then break;end; end; if((czy_zerowy_spis_rzeczy)and(not mw.ustring.match(rozdzial,"^%s+")))then return liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial; else liczba_od=liczba_start_rozdzial; end; else return; end; end; return nil; end; function p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) if(obiekt=="SZABLON")then return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return;end; return true; end); elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa)and(zawartosc))then if(nazwa=="center")then return true; end; end; end; end; function p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst_rozwiniety_calego_artykulu,wzor,liczba_od,liczba_do,jak,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); while(true)do local liczba_start_rozdzial,liczba_koniec_rozdzial,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"("..wzor..")",liczba_od,liczba_do,jak); if(liczba_start_rozdzial)then if((not mw.ustring.match(linia,"^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$"))and(not mw.ustring.match(linia,"^[%*#:;<>]")))then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon,obiekt,kod,poziom_iteracji=iterator(); local wynik=((szablon)and(obiekt)and(kod))and p.CzyWprowadzenieNapisuTekstuCentrowany(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa) or nil; if(not wynik)then local rozdzial,czy_standardowe_rozdzialy=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((rozdzial)and(czy_standardowe_rozdzialy))then return liczba_start_rozdzial,liczba_koniec_rozdzial,linia; end; end; end; if(jak)then liczba_od=liczba_start_rozdzial;else liczba_od=liczba_koniec_rozdzial;end; else return; end; end; return nil; end; function p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local tab_2,numer_rodzaju_artykulu,id,parametry,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,stronicowyparser_rozdzialy_modul.__FUNKCJA_KOMPLETOWANIA,nil,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych); if(not kom)then local tab=((tab_2 and tab_2[1]) and tab_2 or nil); if(tab)then if(numer_rodzaju_artykulu==1)then local artykul=stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(tab[1],false); local czy_podrecznik=((mw.ustring.match(artykul,"^%u"))and((not mw.ustring.match(artykul,"%l%u"))or(mw.ustring.match(artykul,"%s")))) local function StronyWstepu(artykul) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tak=true; for _,wzor in ipairs(stronicowyparser_obiekty_modul.artykularne_niespisowe) do tak=tak and (not mw.ustring.match(artykul,wzor)); if(not tak)then return tak;end; end; return tak; end; if((czy_glowny_spis_tresci)and(artykul==""))then return false,numer_rodzaju_artykulu,czy_podrecznik,false; else if((czy_usun_okladka)--[[or(numer_rodzaju_artykulu>1)]]or(--[[(numer_rodzaju_artykulu==1)and]](artykul~="")and(StronyWstepu(artykul))))then return true,numer_rodzaju_artykulu,czy_podrecznik,false; else return true,numer_rodzaju_artykulu,czy_podrecznik,true; end; end; else return true,numer_rodzaju_artykulu,--[[czy_podrecznik]]false,false; end; end; end; return false,nil; end; function p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(obiekt=="SZABLON")then local szablonowe_modul=require("Module:Szablonowe"); local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) ---- if(nazwa_szablonu=="SpisTreści")then return true,1; else local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]; if(tabela_spisu)then local parametr_linku; if(tabela_spisu[1]==true)then local numer_link=tabela_spisu["numer_link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; else local numer_link=tabela_spisu["link"]; parametr_linku=tabela_parametrow_szablonu[numer_link]; end; if(parametr_linku)then local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(parametr_linku,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; end; end; end; end; end); if(czy_element_spisu)then return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; end; return false; end; function p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci) local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); if((not czy_element_spisu)and(not numer_rodzaju_artykulu))then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzySpecjalnyElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,czy_usun_okladka,czy_glowny_spis_tresci); end; return czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka; end; function p.SzukanieNaPodstawieWzoru(str,wzor,liczba,liczba2,czy_od_tylu,jak) if(not czy_od_tylu)then if((liczba)and(liczba2)and(liczba>liczba2))then return;end; local a,b,c,d,e,f,g,h,i,j,k,l=mw.ustring.find(str,wzor,liczba); if((a)and(b)and(a>b))then return;end; if((not liczba2)or(b<=liczba2))then return a,b,c,d,e,f,g,h,i,j,k,l; end; return nil; else if((liczba)and(liczba2)and(liczba<liczba2))then return;end; local liczba_start=liczba2 or 1; local a,b,c,d,e,f,g,h,i,j,k,l=nil,nil,nil,nil,nil,nil,nil; while(true)do local a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1=mw.ustring.find(str,wzor,liczba_start); if((a1)and(b1)and(a1>b1))then return;end; if((not b1)or((b1)and(b1>liczba)))then return a,b,c,d,e,f,g,h,i,j,k,l; elseif((b1)and(b1==liczba))then return a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; end; a,b,c,d,e,f,g,h,i,j,k,l=a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1; if(not jak)then if(a1==b1)then liczba_start=b1+1; else liczba_start=b1; end; else liczba_start=b1+1; end; end; end; end; function p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_start,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); while(true)do local liczba_start_szablon,liczba_koniec_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,szablon_normy_kodowania_szablonu,liczba_obiekt_start_od_tylu,liczba_start,true); if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local obiekt="SZABLON"; local kod=kod_szablon and tonumber(kod_szablon) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; ---- local liczba_koniec_szablon,norma_wzoru=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if(nazwa_szablonu=="Licencja")then return liczba_koniec_szablon,szablonowe_modul.NormaKoduKodowaniaTekstu(obiekt,kod); end; end); if(liczba_koniec_szablon)then return liczba_koniec_szablon,norma_wzoru; end; elseif(not liczba_start_szablon)then return nil; end; end; end; function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba,liczba2,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local liczba_start_szablon;local liczba_koniec_szablon; local liczba_wys_szablon=liczba; local norma_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"); local spis_naglowka_szablon; local spis_naglowka_szablon_stare; while(true)do local kod; liczba_start_szablon,liczba_koniec_szablon,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_szablonu,liczba_wys_szablon,liczba2,czy_od_tylu); if(liczba_start_szablon)then if(not czy_od_tylu)then liczba_wys_szablon=liczba_koniec_szablon;else liczba_wys_szablon=liczba_start_szablon;end; local obiekt="SZABLON"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) local liczba_szablon_centrowany=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(liczba_szablon_centrowany)then local naglowek=tabela_parametrow_szablonu[liczba_szablon_centrowany]; if(naglowek)then if(not mw.ustring.match(naglowek,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_szablon_stare=naglowek; spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_szablon))then return false; end; else spis_naglowka_szablon=naglowek; return false; end; end; end; end; return true; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return true; end); if(not wynik)then break; end; else break; end; end; local liczba_start_znacznik;local liczba_koniec_znacznik; local liczba_wys_znacznik=liczba; local norma_kodowania_znacznika=szablonowe_modul.NormaWzoruKodowaniaTekstu("ZNACZNIK"); local spis_naglowka_znacznik; local spis_naglowka_znacznik_stare; while(true)do local kod; liczba_start_znacznik,liczba_koniec_znacznik,kod=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,norma_kodowania_znacznika,liczba_wys_znacznik,liczba2,czy_od_tylu); if(liczba_start_znacznik)then if(not czy_od_tylu)then liczba_wys_znacznik=liczba_koniec_znacznik;else liczba_wys_znacznik=liczba_start_znacznik;end; local obiekt="ZNACZNIK"; kod=kod and tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then if(zawartosc)then if(not mw.ustring.match(zawartosc,"^%s*%d+%s*/%s*%d+%s*$"))then if(czy_spis_tresci)then spis_naglowka_znacznik_stare=zawartosc; spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(zawartosc,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; if(czy_spis_tresci(spis_naglowka_znacznik))then break; end; else spis_naglowka_znacznik=zawartosc; break; end; end; end; end; else break; end; end; local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local liczba_start_dodatni;local liczba_koniec_dodatni; local liczba_wys_dodatni=liczba; local spis_naglowka_dodatni; local spis_naglowka_dodatni_stare; local spis_naglowka_poziom; while(true)do local naglowek; liczba_start_dodatni,liczba_koniec_dodatni,naglowek=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"(=+[^\n]*[^=\n][^\n]*=+)[^%S\n]*",liczba_wys_dodatni,liczba2,czy_od_tylu); if(not liczba_start_dodatni)then break;end; if(not czy_od_tylu)then liczba_wys_dodatni=liczba_koniec_dodatni;else liczba_wys_dodatni=liczba_start_dodatni;end; local naglowek,poziom_naglowka=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(naglowek); if(naglowek)then if(czy_spis_tresci)then spis_naglowka_dodatni_stare=naglowek; spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; spis_naglowka_poziom=poziom_naglowka; if(czy_spis_tresci(spis_naglowka_dodatni))then break; end; else spis_naglowka_dodatni=naglowek; spis_naglowka_poziom=poziom_naglowka; break; end; end; end; if((liczba_start_szablon)or(liczba_start_znacznik)or(liczba_start_dodatni))then local _max_min; if(czy_od_tylu)then _max_min=math.max(math.max(liczba_start_szablon or 0,liczba_start_znacznik or 0),liczba_start_dodatni or 0); else _max_min=math.min(math.min(liczba_start_szablon or #tekst_rozwiniety_calego_artykulu,liczba_start_znacznik or #tekst_rozwiniety_calego_artykulu),liczba_start_dodatni or #tekst_rozwiniety_calego_artykulu); end; if((liczba_start_szablon)and(_max_min==liczba_start_szablon))then local spis_naglowka_szablon_stare=spis_naglowka_szablon_stare or spis_naglowka_szablon; if((not czy_spis_tresci)and(spis_naglowka_szablon))then spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_szablon=parametry_modul["Odstępy"]{[1]=spis_naglowka_szablon,[2]="tak",}; end; return liczba_start_szablon,liczba_koniec_szablon,spis_naglowka_szablon,spis_naglowka_szablon_stare,nil; elseif((liczba_start_znacznik)and(_max_min==liczba_start_znacznik))then local spis_naglowka_znacznik_stare=spis_naglowka_znacznik_stare or spis_naglowka_znacznik; if((not czy_spis_tresci)and(spis_naglowka_znacznik))then spis_naglowka_znacznik=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_znacznik,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_znacznik=parametry_modul["Odstępy"]{[1]=spis_naglowka_znacznik,[2]="tak",}; end; return liczba_start_znacznik,liczba_koniec_znacznik,spis_naglowka_znacznik,spis_naglowka_znacznik_stare,nil; elseif((liczba_start_dodatni)and(_max_min==liczba_start_dodatni))then local spis_naglowka_dodatni_stare=spis_naglowka_dodatni_stare or spis_naglowka_dodatni; if((not czy_spis_tresci)and(spis_naglowka_dodatni))then spis_naglowka_dodatni=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(spis_naglowka_dodatni,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) spis_naglowka_dodatni=parametry_modul["Odstępy"]{[1]=spis_naglowka_dodatni,[2]="tak",}; end; return liczba_start_dodatni,liczba_koniec_dodatni,spis_naglowka_dodatni,spis_naglowka_dodatni_stare,spis_naglowka_poziom; end; end; return nil; end; function p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) local szablonowe_modul=require("Module:Szablonowe"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablony_wprowadzenia_napisu_spisu_rzeczy=stronicowyparser_obiekty_modul.szablony_wprowadzenia_napisu_spisu_rzeczy; local znaczniki_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.znaczniki_wprowadzenia_tekstu; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local linki=function(zawartosc) local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(zawartosc,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="LINKW")or(obiekt=="LINKZ"))then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; elseif(obiekt=="SZABLON")then local szablon,obiekt,kod,dalszy_tekst=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) if((stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) or(stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]) )then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod); if(tab_szablon_link_intelignetny)then local dalszy_tekst=mw.ustring.match(zawartosc,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod).."(.*)$"); return szablon,obiekt,kod,dalszy_tekst; end; end); return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; if(obiekt=="SZABLON")then local szablon,obiekt,kod=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow) local czy_ce=szablony_wprowadzenia_napisu_spisu_rzeczy[nazwa_szablonu]; if(not czy_ce)then return nil;end; local zawartosc=tabela_parametrow_szablonu[czy_ce]; if(not zawartosc)then return nil;end; local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end); return szablon,obiekt,kod; elseif(obiekt=="ZNACZNIK")then local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod); if(zawartosc)then if((nazwa=="center")or(znaczniki_wprowadzenia_tekstu[nazwa]))then local szablon,obiekt,kod,dalszy_tekst=linki(zawartosc); if((szablon)and(obiekt)and(kod))then return szablon,obiekt,kod,dalszy_tekst; end; return nil; end; end; return nil; end; end; function p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_spis,liczba_start_tekst,liczba2,czy_od_tylu) local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; local a1;local a2;local a3;local a4;local a5;local a6;local a7;local a8;local a9;local a10; local dlugosc_tekstu_wyszukiwanego=#tekst_rozwiniety_calego_artykulu; if(not czy_od_tylu)then if((not liczba_start_tekst)or(liczba_start_tekst==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,false); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==1))and((not liczba2)or(liczba2==dlugosc_tekstu_wyszukiwanego)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,false); end; end; end; end; else if(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); if(not liczba_start_rozdzial)then if((not liczba2)or(liczba2==1))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*\n",liczba_start_tekst,liczba2,true); end; if(not liczba_start_rozdzial)then if(((not liczba_start_tekst)or(liczba_start_tekst==dlugosc_tekstu_wyszukiwanego))and((not liczba2)or(liczba2==1)))then liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^"..wzor_spis.."[^%S\n]*$",liczba_start_tekst,liczba2,true); end; end; end; end; end; return liczba_start_rozdzial,liczba_koniec_rozdzial,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10; end; function p.CzyTamElementyNieSpisoweArtykularne(linia,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do --czy_w_petli=true; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then return true; elseif((not czy_element_spisu)and(numer_rodzaju_artykulu))then tak=true; elseif(czy_okladka)then tak=true; end; end; return (not tak); end; function p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) return function(liczba_koniec_naglowek,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek+1,liczba_obiekt_start_nowe-1); if((mw.ustring.match(str,"^%s*'+(.+)'+%s*$")) or(mw.ustring.match(str,"^[%*#:;<>]+.*$") or(mw.ustring.match(str,"^[%s%p%w]*$"))) )then return nil;end; local ile_punktowanych=0; local szablonowe_modul=require("Module:Szablonowe"); local _,ile=mw.ustring.gsub(str,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[%*#;:<>]"))or(mw.ustring.match(linia,"^%s*$")))then ile_punktowanych=ile_punktowanych+1; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(numer_rodzaju_artykulu>2))then ile_punktowanych=ile_punktowanych+1; break; end; end; end; end); if(ile_punktowanych>=ile)then return nil; end; str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then if(czy_zeruj)then tab_zmienne.liczba_nie_okladka_artykul=nil; tab_zmienne.liczba_pierwszy_rozdzialowy_artykul=nil; tab_zmienne.czy_ten_rozdzial=nil; --tab_zmienne={["liczba_nie_okladka_artykul"]=liczba_nie_okladka_artykul,["liczba_pierwszy_rozdzialowy_artykul"]=liczba_pierwszy_rozdzialowy_artykul,["czy_ten_rozdzial"]=czy_ten_rozdzial,} end; return true; end; end; return nil; end; end; function p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_spac_par,czy_dodatni,czy_bez_naglowka,AnalizowanieSekcjowe) local odtylu=liczba_obiekt_start_spac_par; local liczba_start_naglowek;local liczba_koniec_naglowek;local naglowek;local poziom_naglowka; local liczba_start_naglowek_dalej;local liczba_koniec_naglowek_dalej;local naglowek_dalej;local poziom_naglowka_dalej; local czy_fun=false; local czy_pierwszy=nil; local liczba_koniec_naglowek_poczt=nil; while(true)do local liczba_start_naglowek_nowe;local liczba_koniec_naglowek_nowe;local naglowek_nowe;local poziom_naglowka_nowe; if(czy_dodatni==1)then local _; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,_,poziom_naglowka_nowe=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); elseif(czy_dodatni==2)then local str_lista_naglowek; liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,str_lista_naglowek,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*#:;<>]+)[^%S\n]*([^\n]-)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and (-#str_lista_naglowek) or nil; else liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*#:;<>\n][^%S\n]*[^\n]-:)",odtylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); poziom_naglowka_nowe=liczba_start_naglowek_nowe and 0 or nil; end; if(not liczba_start_naglowek_nowe)then break; else poziom_naglowka_nowe=(czy_dodatni==1)and (poziom_naglowka_nowe or 2) or poziom_naglowka_nowe; local czy_tak_spisowe=(czy_dodatni==1) and true or p.CzyTamElementyNieSpisoweArtykularne(mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe),nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); if(czy_tak_spisowe)then if(not czy_pierwszy)then liczba_koniec_naglowek_poczt=liczba_koniec_naglowek_nowe; czy_pierwszy=true; end; if(liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe<liczba_start_naglowek)then if(liczba_koniec_naglowek_nowe+1<=liczba_start_naglowek-1)then local pomiedzy_naglowkami=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_start_naglowek-1); if((pomiedzy_naglowkami)and(not mw.ustring.match(pomiedzy_naglowkami,"^%s*$")) and((czy_dodatni==1) and( ((poziom_naglowka_nowe)and(not poziom_naglowka)) or( ((poziom_naglowka_nowe)and(poziom_naglowka)) and(poziom_naglowka_nowe>=poziom_naglowka) ) ) or( ((czy_dodatni==2)and(poziom_naglowka_nowe<=poziom_naglowka)) or((czy_dodatni~=1)and(czy_dodatni~=2)) ) ) )then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; elseif(liczba_start_naglowek~=liczba_koniec_naglowek_nowe)then liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; break; end; end; if(((czy_dodatni==1)or(czy_dodatni==2))and(AnalizowanieSekcjowe)and(not czy_fun))then local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek_nowe); if(not spis_tresci)then --local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); local czy_wynik=AnalizowanieSekcjowe(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe); if(czy_wynik)then return false;end; end; czy_fun=true; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_nowe,liczba_koniec_naglowek_nowe,naglowek_nowe,poziom_naglowka_nowe; end; end; odtylu=liczba_start_naglowek_nowe; end; return liczba_start_naglowek,liczba_koniec_naglowek_poczt,naglowek,poziom_naglowka,liczba_start_naglowek_dalej,liczba_koniec_naglowek_dalej,naglowek_dalej,poziom_naglowka_dalej; end function p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,czy_bez_naglowka,AnalizowanieSekcjowe) local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka,liczba_start_naglowek_dalej=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,1,czy_bez_naglowka,AnalizowanieSekcjowe); ---- if((AnalizowanieSekcjowe)and(liczba_start_naglowek==false))then return nil;end; ---- local str_spacja_lub_zerowy_naglowek=function(tekst) local ile_znalezione_linie_wedlug_wzoru=0; local _,ile=mw.ustring.gsub(tekst,"([^\n]+)",function(linia) if((mw.ustring.match(linia,"^[^%*#:;<>\n].-:%s*$"))or(mw.ustring.match(linia,"^%s*$")))then ile_znalezione_linie_wedlug_wzoru=ile_znalezione_linie_wedlug_wzoru+1; end; return nil; end); if(ile==ile_znalezione_linie_wedlug_wzoru)then return true;end; return nil; end; if((not liczba_start_naglowek_dalej)and(liczba_start_naglowek))then local liczba_szukaj_odtylu_tekst=liczba_start_naglowek; local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]+)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(not liczba_start_rozdzial)then while(true)do local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_start_naglowek,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp,liczba_start_naglowek); if(not str_spacja_lub_zerowy_naglowek(str))then break; end; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; if(not liczba_start_naglowek_temp)then break;end; end; end; elseif(not liczba_start_naglowek)then local liczba_szukaj_odtylu_tekst=liczba_obiekt_start_kolei_par; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+([^\n]-[^'\n][^\n]-)''+",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); if(liczba_start_naglowek_temp)then local stronicowyparser_spistresci_modul=require("Module:StronicowyParser/SpisTreści") local spis_naglowka_szablon=stronicowyparser_spistresci_modul.AnalizaNapisuWprowadzeniaTekstu(naglowek_temp,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not mw.ustring.match(spis_naglowka_szablon,"!%s*$")and(not mw.ustring.match(spis_naglowka_szablon,"%S!")))then ---- local tak=false; local czy_w_petli=false; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(naglowek_temp,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do czy_w_petli=true; if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then if(numer_rodzaju_artykulu==1)then tak=true; break; end; end; end; end; if((tak)or(not czy_w_petli))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,0; end; end; else local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,2,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; liczba_obiekt_start_kolei_par=liczba_start_naglowek; end; end; local liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp,liczba_start_naglowek_dalej_temp=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_kolei_par,3,czy_bez_naglowka,nil); if(liczba_start_naglowek_temp)then if(liczba_koniec_naglowek_temp+1<=liczba_obiekt_start_kolei_par-1)then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_temp+1,liczba_obiekt_start_kolei_par-1); if(mw.ustring.match(str,"^%s*$"))then liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; else liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=liczba_start_naglowek_temp,liczba_koniec_naglowek_temp,naglowek_temp,poziom_naglowka_temp; end; end; end; end; return liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka; end; function p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,czy_dalej_rozdzial,liczba_pierwszy_rozdzialowy_artykul) local liczba_spac=0; if(liczba_start)then local liczba_start_tekst=liczba_start;local liczba_koniec_tekst;local linia; while(true)do local liczba_start_tekst_stare=liczba_start_tekst; linia=nil local liczba_szukaj_odtylu_tekst=liczba_start_tekst; liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); local czy_poczt; if(not liczba_start_tekst)then liczba_start_tekst,liczba_koniec_tekst,linia=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"^([^%*#:;<>\n][^\n]*)\n",liczba_szukaj_odtylu_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); czy_poczt=true; else czy_poczt=false; end; local rozdzial_dodatki=linia and mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$") or nil; if(rozdzial_dodatki)then local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then return (czy_dalej_rozdzial)and liczba_start or liczba_koniec_tekst,liczba_spac; end; end; local spacja=linia and mw.ustring.match(linia,"^%s*$") or nil; if(spacja)then liczba_spac=liczba_spac+#linia+(czy_poczt and 1 or 2); elseif((not spacja)and(linia))then local czy_spis=nil; local spis_tresci=p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(linia,true); local liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=nil,nil,nil; if(not spis_tresci)then liczba_start_rozdzial,liczba_koniec_rozdzial,rozdzial=p.ZnajdowanieZerowegoSpisuRzeczy(tekst_rozwiniety_calego_artykulu,liczba_start_tekst,(not czy_bez_naglowka) and liczba_start_rozdzial or 1); liczba_start=liczba_start_rozdzial or ((mw.ustring.match(linia,"^[^\n]+:[^%S\n]*$")) and liczba_start_tekst or liczba_koniec_tekst); czy_spis=liczba_start_rozdzial and true or nil; else liczba_start=--[[spis_tresci and]] liczba_start_tekst--[[ or liczba_koniec_tekst]]; czy_spis=true; end; if(not liczba_start_rozdzial)then if(not spis_tresci)then local szablonowe_modul=require("Module:Szablonowe"); if(mw.ustring.match(linia,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then local tak=false; local czy_okladka=nil; local szablonowe_modul=require("Module:Szablonowe"); local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(not czy_okladka))then tak=true; break; end; end; end; liczba_start=tak and liczba_start_tekst or liczba_start; else liczba_start=liczba_koniec_tekst; end; else liczba_start=--[[spis_tresci and ]]liczba_start_tekst--[[ or liczba_koniec_tekst]]; end; end; return liczba_start,liczba_spac,czy_spis; elseif(not liczba_start_tekst)then return (czy_dalej_rozdzial)and liczba_start or math.min(liczba_pierwszy_rozdzialowy_artykul or 1,liczba_start),liczba_spac,nil; end; end; end; return liczba_start,liczba_spac,nil; end; function p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_spisowa) local liczba_spisu=liczba_spisowa; local szablonowe_modul=require("Module:Szablonowe"); local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu() while(true)do local liczba_linki_nierozdzialowe_szablonu,_,przed_tekst,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoru(tekst_rozwiniety_calego_artykulu,"\n[^%S\n]*([^\n]-)[^%S\n]*"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_spisu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); --- if((liczba_linki_nierozdzialowe_szablonu) and( (przed_tekst=="") or(mw.ustring.match(przed_tekst,"^[%p%s%d%.]*$")) ) )then liczba_spisu=liczba_linki_nierozdzialowe_szablonu; if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; ---- local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); ---- ---- if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; else local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(dalszy_tekst,nil,tablica_analizy_obiektow_strony_dany_modul); local szablon_obiekt_temp,szablon_kod_temp=obiekt_szablon,kod_szablon; for szablon,obiekt,kod in iterator do local czy_znajdz=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_znajdz)then local czy_tekst=mw.ustring.match(dalszy_tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu(szablon_obiekt_temp,szablon_kod_temp).."[%p%s%d%.]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)); if(czy_tekst)then if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or(numer_rodzaju_artykulu>1)))then return liczba_linki_nierozdzialowe_szablonu,true; end; end; else return liczba_spisowa,false; end; szablon_obiekt_temp,szablon_kod_temp=obiekt,kod; end; end; return liczba_spisowa,false; end; end; else return liczba_spisowa,false; end; end; end; function p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local tak=nil; local techniczne_modul=require("Module:Techniczne"); local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,1,nil,false,function(naglowek) naglowek=techniczne_modul.UsuwanieZnakoweKontrolneNiewidzialne(naglowek); if(mw.ustring.match(naglowek,"^"..tab_wzor[1].."$"))then return true; end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(not liczba_rozdzial_start)then liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"("..tab_wzor[1]..")",liczba_rozdzial_koniec,nil,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)then tak=true;end; end; if(liczba_rozdzial_start)then local liczba_rozdzial_start2,liczba_rozdzial_koniec2; if(not tak)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); else local liczba_rozdzial_start3,liczba_rozdzial_koniec3=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst,liczba_rozdzial_koniec,nil,false,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local liczba_rozdzial_start4,liczba_rozdzial_koniec4=p.ZnajdowanieZerowegoNapisuWprowadzeniaTekstu(tekst,"[^%*#;:<>\n]+[^\n]+",liczba_rozdzial_koniec,nil,true,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); ---- if((liczba_rozdzial_start3)and(liczba_rozdzial_start4))then if(liczba_rozdzial_start3<liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; end; elseif(liczba_rozdzial_start3)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start3,liczba_rozdzial_koniec3; elseif(liczba_rozdzial_start4)then liczba_rozdzial_start2,liczba_rozdzial_koniec2=liczba_rozdzial_start4,liczba_rozdzial_koniec4; else liczba_rozdzial_start2,liczba_rozdzial_koniec2=nil,nil; end; end; ----- local str_bibliografia=mw.ustring.sub(tekst,liczba_rozdzial_koniec+1,(liczba_rozdzial_start2 and (liczba_rozdzial_start2-1) or #tekst)); if((not str_bibliografia)or(str_bibliografia==""))then return tekst;end; local tekst1=mw.ustring.sub(tekst,1,liczba_rozdzial_koniec); local tekst2=liczba_rozdzial_start2 and mw.ustring.sub(tekst,liczba_rozdzial_start2,#tekst) or ""; ----- local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local szablonowe_modul=require("Module:Szablonowe"); local techniczne_modul=require("Module:Techniczne"); str_bibliografia=mw.ustring.gsub(str_bibliografia,"([^\n]+)",function(linia) local obiekt,kod,dalszy_tekst=mw.ustring.match(linia,"^[%*:;#<>]+%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."([^\n]*)$"); if((obiekt)and(kod)and(dalszy_tekst))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_okladka)and(czy_element_spisu)and(numer_rodzaju_artykulu==1))then return linia; end; end; linia=dalszy_tekst or linia; local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nil,tablica_analizy_obiektow_strony_dany_modul); for szablon,obiekt,kod in iterator do if(((tab_wzor[2])and((obiekt=="LINKW")or(obiekt=="LINKZ")))or(obiekt=="SZABLON"))then local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if(czy_element_spisu)then return linia; elseif(obiekt=="SZABLON")then local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) if((stronicowyparser_obiekty_modul.szablony_przypisowe[nazwa_szablonu])or(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu]))then return linia; else return ""; end; end,nil,nil,nil,nil,nil,nil,nil,nil, function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod) return ""; end); return wynik; end; end; end; return ""; end); tekst=tekst1..str_bibliografia..tekst2; end; return tekst; end; function p.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych) local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały"); local czy_uruchomiony_analizator_spisu_rzeczy_strony=stronicowyparser_rozdzialy_modul.UruchamianieAnalizatoraSpisuRzeczyStrony(); if(not czy_uruchomiony_analizator_spisu_rzeczy_strony)then return nil;end; ---- local liczba_start=nil;local liczba_koniec=nil; ---- local szablonowe_modul=require("Module:Szablonowe"); local parametry_modul=require("Module:Parametry"); local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); ----- local szablon_normy_kodowania_szablonu=szablonowe_modul.NormaWzoruKodowaniaTekstu(); ---- local liczba_obiekt_koniec=1; local liczba_pierwszy_rozdzialowy_artykul=nil; local liczba_nie_okladka_artykul=nil; local tab_nazwa_spisow_przekierowaniowych={}; local liczba_start_rozdzial=1; local liczba_obiekt_start_poprz=nil; local liczba_obiekt_koniec_poprz=nil; local liczba_nie_okladka_artykul_koniec=nil; local wzor_szablonu_list="([%*:#;<>]*)([^%S\n]*)([^\n]-)[^%S\n]*[\'\"]*[^%S\n]*"..szablon_normy_kodowania_szablonu.."[^%S\n]*[\'\"]*[^%S\n]*([^\n]-)[^%S\n]*"; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,odstepy_poczatku_rozdzialu,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,wzor_szablonu_list,liczba_obiekt_koniec,nil,false); if(liczba_start_szablon)then liczba_obiekt_koniec=liczba_koniec_szablon; --local czy_rozdzial_dodatni=((lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local czy_rozdzial_dodatni; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=((czy_dobry_obiekt)and(((lista_szablon~="")and((przerwa_szablon=="")or((mw.ustring.match(lista_szablon,"^:"))and((przerwa_szablon==">")or(przerwa_szablon=="<")))or(not mw.ustring.match(lista_szablon,"^:"))))or((lista_szablon=="")and(przerwa_szablon=="")and(not mw.ustring.match(dalszy_tekst,"^>"))))); czy_listy=czy_listy or ((czy_dobry_obiekt)and(lista_szablon=="")and(odstepy_poczatku_rozdzialu=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((not czy_element_spisu)or(czy_okladka))then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) local czy_element_spisu_temp;local numer_rodzaju_artykulu_temp;local czy_podrecznik_temp;local czy_okladka_temp; local tak=false; for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,false,true); if((czy_element_spisu_temp)and(not czy_okladka_temp))then if(numer_rodzaju_artykulu_temp==1)then tak=true; break; end; end; end; end; if(tak)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik,czy_okladka=czy_element_spisu_temp,numer_rodzaju_artykulu_temp,czy_podrecznik_temp,czy_okladka_temp; end; end; liczba_pierwszy_rozdzialowy_artykul=(not liczba_pierwszy_rozdzialowy_artykul)and(czy_element_spisu and liczba_obiekt_start or nil) or liczba_pierwszy_rozdzialowy_artykul; liczba_nie_okladka_artykul=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and(dalszy_tekst=="")))))) and liczba_obiekt_start or liczba_nie_okladka_artykul; liczba_nie_okladka_artykul_koniec=((not liczba_nie_okladka_artykul)and((czy_element_spisu)and(((numer_rodzaju_artykulu==1)and(not czy_okladka))or((numer_rodzaju_artykulu>=2)and((lista_szablon)and(lista_szablon~="") and (przerwa_szablon=="") and (dalszy_tekst=="")))))) and liczba_obiekt_koniec or liczba_nie_okladka_artykul_koniec; ---- if((czy_element_spisu)and(numer_rodzaju_artykulu==1)and(czy_podrecznik)and(not czy_okladka))then local czy_bez_naglowka=nil; local liczba_obiekt_start_nowe=liczba_nie_okladka_artykul or liczba_obiekt_start; local liczba_obiekt_koniec_nowe=liczba_nie_okladka_artykul_koniec or liczba_obiekt_koniec; local liczba_start_naglowek,liczba_koniec_naglowek,naglowek=nil,nil,nil; local czy_ten_rozdzial=true; local liczba_obiekt_start_nowe_temp=liczba_obiekt_start_nowe; local liczba_spis_tresci_start,liczba_spis_tresci_koniec,naglowka_dodatni_start,spis_naglowka_dodatni_stare_start,poziom_naglowka_start=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_obiekt_start_nowe,liczba_start_rozdzial,true,function(naglowek) if(p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron(naglowek))then return true;end; end,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); local czy_zeruj=(not liczba_spis_tresci_start)and true or false; liczba_obiekt_start_nowe=liczba_spis_tresci_start or liczba_obiekt_start_nowe; local tab_zmienne={ liczba_nie_okladka_artykul=liczba_nie_okladka_artykul, liczba_pierwszy_rozdzialowy_artykul=liczba_pierwszy_rozdzialowy_artykul, czy_ten_rozdzial=czy_ten_rozdzial, }; liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; if(not czy_ten_rozdzial)then if(liczba_obiekt_start~=liczba_obiekt_start_nowe_temp)then liczba_start_rozdzial=liczba_obiekt_start_nowe_temp; liczba_obiekt_start_nowe=liczba_obiekt_start; czy_ten_rozdzial=true; tab_zmienne.czy_ten_rozdzial=czy_ten_rozdzial; liczba_start_naglowek,liczba_koniec_naglowek,naglowek=p.SzukanieKolejnychSekcji(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start,czy_bez_naglowka,p.AnalizowanieSekcjowe(tekst_rozwiniety_calego_artykulu,czy_zeruj,tab_zmienne,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych)); liczba_nie_okladka_artykul,liczba_pierwszy_rozdzialowy_artykul,czy_ten_rozdzial=tab_zmienne.liczba_nie_okladka_artykul,tab_zmienne.liczba_pierwszy_rozdzialowy_artykul,tab_zmienne.czy_ten_rozdzial; end; end; ---- jest to pozycja nagłówka, która mówi, który nagłówek ma być pierwszy, czy ten od spisu treści, czy ten dalszy; liczba_start_naglowek=( (not liczba_spis_tresci_start) or((liczba_spis_tresci_start)and(not poziom_naglowka_start)) -- nagłówek spisu tresci centrowany; -- nagłówki oba dodatnie niecentrowane, oba ujemne lub ten pierwszy dodatni, a drugi ujemny, a pierwszy dodatni; or((poziom_naglowka_start)and(poziom_naglowka))and( ((poziom_naglowka_start>0)and(poziom_naglowka<=0)) or((poziom_naglowka_start<=0)and(poziom_naglowka<=0)and(poziom_naglowka_start>=poziom_naglowka)) or((poziom_naglowka_start>0)and(poziom_naglowka>0)and(poziom_naglowka_start<=poziom_naglowka)) ) ) and liczba_spis_tresci_start or liczba_start_naglowek; ---- if(((not czy_okladka)or((czy_okladka)and(lista_szablon~=""))or(liczba_start_naglowek))and(czy_ten_rozdzial))then ---- czy_bez_naglowka=((not liczba_start_naglowek)or((liczba_obiekt_koniec_poprz or 1)<=(liczba_start_rozdzial or 1))) and true or false; ---- if(liczba_start_naglowek)then local liczba_przed_rozdzialem;local czy_znajdz; liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start_naglowek); local odtylu_dalej=--[[liczba_spis_tresci or]] liczba_start_naglowek; local liczba_start_naglowek_przed=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,odtylu_dalej,liczba_start_rozdzial,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_start_naglowek_przed)then if(liczba_przed_rozdzialem>=liczba_start_naglowek_przed)then liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; else liczba_start=liczba_spis_tresci; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,true,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then if(liczba_start_sugerowane>liczba_start_naglowek_przed)then liczba_start=liczba_start_sugerowane; local liczba_start_od_tylu=liczba_start; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); if(liczba_start_nowa)then if(liczba_start_nowa>liczba_start_naglowek_przed)then liczba_start=liczba_start_nowa; end; end; end; end; end; else liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,liczba_start_rozdzial,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; else liczba_start=liczba_start_sugerowane; end; end; else local liczba_start_naglowek,liczba_koniec_naglowek,naglowek,poziom_naglowka=p.SzukanieSekcjiOTekstowychPustychElementowychPozycjachLinkowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,liczba_obiekt_start_nowe,liczba_obiekt_start_nowe,2,czy_bez_naglowka,function(liczba_koniec_naglowek_nowe,liczba_obiekt_start_nowe) if((liczba_koniec_naglowek_nowe)and(liczba_obiekt_start_nowe)and(liczba_koniec_naglowek_nowe+1<=liczba_obiekt_start_nowe-1))then local str=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_koniec_naglowek_nowe+1,liczba_obiekt_start_nowe-1); str=mw.ustring.gsub(str,szablonowe_modul.NormaWzoruKodowaniaTekstu("SZABLON"),""); if(not mw.ustring.match(str,"^%s*$"))then return true; end; end; return nil; end); if(liczba_start_naglowek)then liczba_obiekt_start_nowe=liczba_start_naglowek; end; --[[]] local liczba_przed_rozdzialem,czy_znajdz=p.LinkiNormalneWLubPozaProjektoweSzablonyNieSekcjowychPozycjach(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_obiekt_start_nowe); liczba_start=liczba_przed_rozdzialem; local liczba_start_sugerowane,liczba_spac,czy_spis=p.SzukanieSekcjiLinkowychLiniowych(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,liczba_start_rozdzial,czy_bez_naglowka,liczba_start,false,liczba_pierwszy_rozdzialowy_artykul); if(czy_spis)then liczba_start=liczba_start_sugerowane; break; elseif(not czy_znajdz)then liczba_start=liczba_przed_rozdzialem; break; end; if(liczba_start_sugerowane<liczba_start-liczba_spac)then local liczba_start_od_tylu=liczba_start_sugerowane; local liczba_start_nowa=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"''+[^\n]*[^'][^\n]*''+",liczba_start_od_tylu,(not czy_bez_naglowka) and liczba_start_rozdzial or 1,true); liczba_start=liczba_start_nowa or liczba_start_sugerowane; end; end; break; else liczba_start_rozdzial=liczba_obiekt_koniec_nowe; liczba_nie_okladka_artykul_koniec=nil; end; liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; else liczba_obiekt_koniec_poprz=((czy_element_spisu)and(numer_rodzaju_artykulu<=2)) and liczba_obiekt_koniec or liczba_obiekt_koniec_poprz; end; end; else break; end; end; if(not liczba_start)then return "";end; local liczba_obiekt_start_od_tylu=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_start_szablon,liczba_koniec_szablon,lista_szablon,przerwa_szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([%*:#;<>]?)([^\n]-)"..szablon_normy_kodowania_szablonu.."([^\n]*)",liczba_obiekt_start_od_tylu,liczba_start,true); ---- if(liczba_start_szablon)then liczba_obiekt_start_od_tylu=liczba_start_szablon; local czy_dobry_obiekt=((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ")); local czy_listy=(czy_dobry_obiekt)and((lista_szablon~="")or((lista_szablon=="")and(przerwa_szablon==""))); local czy_listy=czy_listy or (czy_dobry_obiekt)and((lista_szablon=="")and(mw.ustring.match(przerwa_szablon,"^=+")and(mw.ustring.match(dalszy_tekst,"=+%s*$")))); local szablon; if(not czy_listy)then local obiekt=obiekt_szablon;local kod=tonumber(kod_szablon) or nil; szablon,obiekt_szablon,kod_szablon,dalszy_tekst=p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu(obiekt,kod,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(szablon)then czy_listy=true;end; end; if(czy_listy)then local liczba_obiekt_koniec=liczba_koniec_szablon; local liczba_obiekt_start=liczba_start_szablon; local obiekt=obiekt_szablon; local kod=kod_szablon; kod=tonumber(kod) or nil; local szablon=szablon or tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element_spisu=nil;local numer_rodzaju_artykulu=nil;local czy_podrecznik=nil; if(liczba_start<=liczba_obiekt_start)then czy_element_spisu,numer_rodzaju_artykulu,czy_podrecznik=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(not czy_element_spisu)then local iterator=mw.ustring.gmatch(dalszy_tekst,szablon_normy_kodowania_szablonu) for obiekt,kod in iterator do if((obiekt=="SZABLON")or(obiekt=="LINKW")or(obiekt=="LINKZ"))then kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; --if(((not czy_spis_tresci)and(lista_szablon~=""))or((czy_spis_tresci)and((lista_szablon=="")and(przerwa_szablon==""))))then czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---elseif((lista_szablon=="")and(przerwa_szablon==""))then ---czy_element_spisu,numer_rodzaju_artykulu=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); ---end; if(czy_element_spisu)then break;end; end; end; end; end; if(czy_element_spisu)then local function IleKoniec() while(true)do local poczatek_nierozdzalowe=liczba_obiekt_koniec; local liczba_start_nieszablon_nielink_nierozdzialowa,liczba_koniec_nieszablon_nielink_nierozdzialowa,linia=p.SzukanieNaPodstawieWzoruElementuLinii(tekst_rozwiniety_calego_artykulu,"([^%*:;#<>'\n]+[^\n]*)",poczatek_nierozdzalowe,nil,false) if(liczba_start_nieszablon_nielink_nierozdzialowa)then local rozdzial_dodatki=mw.ustring.match(linia,"^(=+([^\n]*[^=\n][^\n]*)=+)[^%S\n]*$"); if(rozdzial_dodatki)then local naglowek=stronicowyparser_rozdzialy_modul.PodajNapisPoziomuWprowadzeniaTekstu(rozdzial_dodatki); if(naglowek)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; end; end; local czy_spacje=mw.ustring.match(linia,"^%s*$"); if(not czy_spacje)then liczba_koniec=liczba_start_nieszablon_nielink_nierozdzialowa; return; elseif(czy_spacje)then liczba_obiekt_koniec=liczba_koniec_nieszablon_nielink_nierozdzialowa; --else -- liczba_koniec=#tekst_rozwiniety_calego_artykulu; -- return; end; else liczba_koniec=#tekst_rozwiniety_calego_artykulu; break; end; end; end; IleKoniec(); break; end; end; else break; end; end; if(liczba_koniec)then local koniec_dodatnie_rozdzialy=#tekst_rozwiniety_calego_artykulu; while(true)do local liczba_rozdzial_start,liczba_rozdzial_koniec,rozdzial_nazwa,rozdzial=p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,koniec_dodatnie_rozdzialy,liczba_start,true,false,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if(liczba_rozdzial_start)and(liczba_rozdzial_start>=liczba_koniec)then koniec_dodatnie_rozdzialy=liczba_rozdzial_start; local start=1; while(true)do local start_szablon,koniec_szablon,obiekt_szablon,kod_szablon=p.SzukanieNaPodstawieWzoru(rozdzial,szablon_normy_kodowania_szablonu,start); local koniec_obiekt;local kod_obiekt;local obiekt=nil; if(start_szablon)then if((obiekt_szablon=="SZABLON")or(obiekt_szablon=="LINKW")or(obiekt_szablon=="LINKZ"))then --koniec_obiekt=koniec_szablon; local kod=kod_szablon; local obiekt=obiekt_szablon; local kod=tonumber(kod) or nil; local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]; local czy_element=p.CzyGeneralnieElementSpisuRzeczy(szablon,obiekt,kod,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,true,true); if(czy_element)then liczba_koniec=liczba_rozdzial_koniec; break; end; end; start=koniec_szablon; else break; end; end; else break; end; end; end; if(not liczba_koniec)then return "";end; if(liczba_start>=liczba_koniec)then return "";end; --- Licencja ---- local licencja_koniec,szablon_licencja=p.KoniecStronyLicencja(tekst_rozwiniety_calego_artykulu,liczba_koniec,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony); if((licencja_koniec)and(licencja_koniec>=liczba_koniec))then liczba_koniec=licencja_koniec; end; ----- local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); ----- for _,tab_wzor in ipairs(stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu_dodatkowe)do tekst=p.KorygowanieTekstuSpisuRzeczy(tekst,tab_wzor,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych); end; --mw.log(tekst) --- Licencja ---- --mw.log(liczba_start,liczba_koniec,"TYTANw",pelna_nazwa_spisu_tresci_szablonowa) --mw.log("TYTAN1",tekst,"TYTAN2") --return nil; --local tekst=mw.ustring.sub(tekst_rozwiniety_calego_artykulu,liczba_start,liczba_koniec); return tekst; end; return p; h1cl2i03o241yz9vjfk0otneykg93uk Szablon:Wersja PDF/opis 10 60984 544796 517363 2026-05-31T23:53:36Z Persino 2851 544796 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == {{Pre|{{s|Wersja PDF|strona (bez "Media:", "Grafika:" oraz ".pdf", jeśli nic nie dodasz, będzie to nazwa tej strony)|opcjonalne informacje (jak numer wersji, ostatnia aktualizacja albo rozmiar pliku)|opcjonalne "wersja PDF podręcznika _____" (jeśli nic nie dodasz, będzie to nazwa aktualnej strony)}}}} * Dodaje stronę do {{lk|Podręczniki z wersją PDF}}. == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == * {{s|Wersja do druku}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria | Szablony linków | Omiń w druku }} </includeonly> ds72aarlrnce5zok3raras9m1m6hy0g 544797 544796 2026-05-31T23:54:15Z Persino 2851 /* Zobacz też */ 544797 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == {{Pre|{{s|Wersja PDF|strona (bez "Media:", "Grafika:" oraz ".pdf", jeśli nic nie dodasz, będzie to nazwa tej strony)|opcjonalne informacje (jak numer wersji, ostatnia aktualizacja albo rozmiar pliku)|opcjonalne "wersja PDF podręcznika _____" (jeśli nic nie dodasz, będzie to nazwa aktualnej strony)}}}} * Dodaje stronę do {{lk|Podręczniki z wersją PDF}}. == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == * {{s|Wersja do druku}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony linków | Omiń w druku }} </includeonly> 8w81f4xbl5ut6r14gprj7ft780py5cs Szablon:Wersja EPUB/opis 10 60985 544798 517364 2026-05-31T23:54:51Z Persino 2851 /* Zobacz też */ 544798 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == {{Pre|{{s|Wersja EPUB|strona (bez "Media:", "Grafika:" oraz ".epub", jeśli nic nie dodasz, będzie to nazwa tej strony)|opcjonalne informacje (jak numer wersji, ostatnia aktualizacja albo rozmiar pliku)|opcjonalne "wersja EPUB podręcznika _____" (jeśli nic nie dodasz, będzie to nazwa aktualnej strony)}}}} Dodaje stronę do {{lk|Podręczniki z wersją EPUB}}. == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == * {{s|Wersja do druku}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony linków | Omiń w druku }} </includeonly> n8tar6a5r260guxnqhdaftdxqvgcidi Szablon:Wersja ePUB/opis 10 60986 544799 517365 2026-05-31T23:55:29Z Persino 2851 544799 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == {{Pre|{{s|Wersja ePUB|strona (bez "Media:", "Grafika:" oraz ".epub", jeśli nic nie dodasz, będzie to nazwa tej strony)|opcjonalne informacje (jak numer wersji, ostatnia aktualizacja albo rozmiar pliku)|opcjonalne "wersja ePUB podręcznika _____" (jeśli nic nie dodasz, będzie to nazwa aktualnej strony)}}}} Dodaje stronę do {{lk|Podręczniki z wersją ePUB}}. == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == * {{s|Wersja do druku}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony linków | Omiń w druku }} </includeonly> pkd3i4fc06chbayhtj9hy5mraqghh0n Napary/Działanie 0 61358 544760 544122 2026-05-31T19:07:02Z EdytaT 2664 /* Wątroba */ 544760 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] * [[Napary/Buliony|Buliony]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Buliony|Buliony]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> o8sceh7epxaohqa1ufdcppxczldxqmt 544762 544760 2026-05-31T19:08:40Z EdytaT 2664 /* Skóra */ 544762 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] * [[Napary/Buliony|Buliony]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Buliony|Buliony]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 0mpxf3qbih4xqzs8qnbi3bi18bv3g4q 544763 544762 2026-05-31T19:10:49Z EdytaT 2664 /* Skupienie */ 544763 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] * [[Napary/Buliony|Buliony]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Buliony|Buliony]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> sp9tq23f3g3iv48zg9kvolkr91n75tg 544768 544763 2026-05-31T19:16:07Z EdytaT 2664 /* Przekwitanie */ 544768 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] * [[Napary/Buliony|Buliony]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == Napary ziołowe potrafią wpływać na poziom estrogenu w okresie menopauzy, ponieważ zawierają [[Napary/Pomoc#F|fitoestrogeny]]. Substancje te, wiążąc się z receptorami estrogenowymi, łagodzą dolegliwości (uderzenia gorąca) i pomagają przywracać równowagę hormonalną. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Buliony|Buliony]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> r6b443v7f0qire6zvhnd7n6ogekmngu 544771 544768 2026-05-31T19:17:50Z EdytaT 2664 /* Przekwitanie */ 544771 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] * [[Napary/Buliony|Buliony]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == Napary ziołowe potrafią wpływać na poziom estrogenu w okresie menopauzy, ponieważ zawierają [[Napary/Pomoc#F|fitoestrogeny]]. Substancje te, wiążąc się z receptorami estrogenowymi, łagodzą dolegliwości (uderzenia gorąca) i pomagają przywracać równowagę hormonalną. * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Buliony|Buliony]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> nibukdhu10dqulm98qps32g9mcipdmt Napary/Ostropest plamisty 0 61375 544755 542114 2026-05-31T17:31:07Z EdytaT 2664 /* Ostropest plamisty */ 544755 wikitext text/x-wiki {{Podrozdział|[[Napary]]<br>Ostropest plamisty}} {{Uprawa - roślina infobox | nazwa = Ostropest plamisty | obrazek = Silybum marianum kz8.jpg | łacina = Silybum marianum | nazwy = | wikipedia = Ostropest plamisty | wikispecies = Silybum marianum | wikisłownik = ostropest plamisty | commons = Category:Silybum marianum }} == Ostropest plamisty == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Zawiera [[Napary/Pomoc#S|sylimarynę]], [[Napary/Pomoc#F|flawonoidy]] i wiele innych substancji prozdrowotnych. * Wspiera [[Napary/Działanie#Oczyszczanie z toksyn|detoksykację]] wątroby. :* Wsparcie dla [[Napary/Działanie#Wątroba|wątroby]] ma duże znaczenie w okresie [[Napary/Działanie#Wątroba|wątroby]][[Napary/Działanie#Przekwitanie|menopauzy]]. * Działanie odtruwające organizm jednocześnie polepsza [[Napary/Działanie#Cera|cerę]]. == Przeciwwskazania == * Jest nieszkodliwy dla kobiet ciężarnych i karmiących. == Surowiec zielarski == * Do naparów najlepiej stosujemy świeżo zmielone owoce (nasiona) ostropestu (''Fructus silybi mariani''). == Suplementacja == * Napar najlepiej pij dwa razy dziennie przed posiłkami, przez miesiąc-dwa, a potem zrób przerwę. [[Plik:Silybi Mariani Fructus.JPG|thumb]] == Napary z ostropestu == * Temperatura zaparzania: {{C|80-90}}. :* Ostropest zalewamy gorącą, ale nie wrzącą wodą, ponieważ wrzątek może zniszczyć cenne związki czynne, w tym [[Napary/Pomoc#S|sylimarynę]]. == Herbatka ostropestowa == * 1-2 łyżeczki mielonych nasion ostropestu zalej szklanka gorącej wody (nie wrzątkiem). * Przykryj naczynie i odstaw na około 10-20 minut. * Odcedź napar przed wypiciem.  == Mieszanka z ostropestu, [[Napary/Działanie#Karczoch zwyczajny|karczocha]] i [[Napary/Działanie#Mniszek lekarski|mniszka]] na [[Napary/Działanie#Oczyszczanie z toksyn|detoksykację]] i [[Napary/Działanie#Wątroba|wątrobę]] == * 1-2 łyżeczki mieszanki tych ziół zalej gorącą wodą. * Zaparzaj 10-20 minut. {{Przypisy}} irf74ihesgc9mnh6nf1ru4bfs3rrbfn 544761 544755 2026-05-31T19:07:55Z EdytaT 2664 544761 wikitext text/x-wiki {{Podrozdział|[[Napary]]<br>Ostropest plamisty}} {{Uprawa - roślina infobox | nazwa = Ostropest plamisty | obrazek = Silybum marianum kz8.jpg | łacina = Silybum marianum | nazwy = | wikipedia = Ostropest plamisty | wikispecies = Silybum marianum | wikisłownik = ostropest plamisty | commons = Category:Silybum marianum }} == Ostropest plamisty == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Zawiera [[Napary/Pomoc#S|sylimarynę]], [[Napary/Pomoc#F|flawonoidy]] i wiele innych substancji prozdrowotnych. * Wspiera [[Napary/Działanie#Oczyszczanie z toksyn|detoksykację]] wątroby. :* Wsparcie dla [[Napary/Działanie#Wątroba|wątroby]] ma duże znaczenie w okresie [[Napary/Działanie#Wątroba|wątroby]][[Napary/Działanie#Przekwitanie|menopauzy]]. * Działanie odtruwające organizm jednocześnie polepsza [[Napary/Działanie#Cera|cerę]]. == Przeciwwskazania == * Jest nieszkodliwy dla kobiet ciężarnych i karmiących. == Surowiec zielarski == * Do naparów najlepiej stosujemy świeżo zmielone owoce (nasiona) ostropestu (''Fructus silybi mariani''). == Suplementacja == * Napar najlepiej pij dwa razy dziennie przed posiłkami, przez miesiąc-dwa, a potem zrób przerwę. [[Plik:Silybi Mariani Fructus.JPG|thumb]] == Napary z ostropestu == * Temperatura zaparzania: {{C|80-90}}. :* Ostropest zalewamy gorącą, ale nie wrzącą wodą, ponieważ wrzątek może zniszczyć cenne związki czynne, w tym [[Napary/Pomoc#S|sylimarynę]]. === Herbatka ostropestowa === * 1-2 łyżeczki mielonych nasion ostropestu zalej szklanka gorącej wody (nie wrzątkiem). * Przykryj naczynie i odstaw na około 10-20 minut. * Odcedź napar przed wypiciem.  === Mieszanka z ostropestu, [[Napary/Działanie#Karczoch zwyczajny|karczocha]] i [[Napary/Działanie#Mniszek lekarski|mniszka]] na [[Napary/Działanie#Oczyszczanie z toksyn|detoksykację]] i [[Napary/Działanie#Wątroba|wątrobę]] === * 1-2 łyżeczki mieszanki tych ziół zalej gorącą wodą. * Zaparzaj 10-20 minut. {{Przypisy}} 24hkmx8ahdbl5y5p6yr5nf3inzdl3v9 Szablon:Wersja do druku/styles.css 10 63556 544764 543466 2026-05-31T19:15:26Z Persino 2851 544764 sanitized-css text/css body:not(.skin--responsive) .szablon_wersji_linków_do_stron{ font-size:12.5px; line-height:1.4; max-width:260px; } body.skin--responsive .szablon_wersji_linków_do_stron{ font-size:0.725rem; line-height:1.4; max-width:16.25rem; } .szablon_wersji_linków_do_stron{ display:flex; flex-direction:row; clear: right; width:100%; border: solid #aaa 1px; margin: 0 0 1em 1em; background: #f9f9f9; text-align:left; float: right; } .szablon_wersji_linków_do_stron > div{ display:flex; flex-direction:column; align-items: stretch; justify-content:center; padding:0.25em; } .szablon_wersji_linków_do_stron > div:nth-child(1){ order:1; flex-basis:4.375em; width:auto; } .szablon_wersji_linków_do_stron > div:nth-child(2){ order:2; width:100%; padding-left:0; } @media all and (max-width:745px){ body:not(.skin--responsive) .szablon_wersji_linków_do_stron, body.skin--responsive .szablon_wersji_linków_do_stron{ max-width:100%; float:none; clear:none; } .szablon_wersji_linków_do_stron{ margin:0; margin-bottom:0.25em; } } @media all and (min-width:745px) and (max-device-height:745px){ .szablon_wersji_linków_do_stron{ margin-bottom:0.25em; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 4gvlz25cg74qfd1090vp62dlltkczdj 544775 544764 2026-05-31T19:35:23Z Persino 2851 544775 sanitized-css text/css body:not(.skin--responsive) .szablon_wersji_linków_do_stron{ font-size:12.5px; line-height:1.4; max-width:260px; } body.skin--responsive .szablon_wersji_linków_do_stron{ font-size:0.725rem; line-height:1.4; max-width:16.25rem; } .szablon_wersji_linków_do_stron{ display:flex; flex-direction:row; clear: right; width:100%; border: solid #aaa 1px; margin: 0 0 1em 1em; background: #f9f9f9; text-align:left; float: right; } .szablon_wersji_linków_do_stron > div{ display:flex; flex-direction:column; align-items: stretch; justify-content:center; padding:0.25em; } .szablon_wersji_linków_do_stron > div:nth-child(1){ order:1; flex-basis:4.375em; width:auto; } .szablon_wersji_linków_do_stron.wersja_z_info > div:nth-child(1){ flex-basis:3.5em; } .szablon_wersji_linków_do_stron > div:nth-child(2){ order:2; width:100%; padding-left:0; } @media all and (max-width:745px){ body:not(.skin--responsive) .szablon_wersji_linków_do_stron, body.skin--responsive .szablon_wersji_linków_do_stron{ max-width:100%; float:none; clear:none; } .szablon_wersji_linków_do_stron{ margin:0; margin-bottom:0.25em; } } @media all and (min-width:745px) and (max-device-height:745px){ .szablon_wersji_linków_do_stron{ margin-bottom:0.25em; } } /*{{Kategoria|Szablony - arkusze stylów}}*/ 9crhqj6ijo26nmwtsks1ykaa3w8w8aa Szablon:Kolekcja/opis 10 63628 544795 2026-05-31T23:46:36Z Persino 2851 Utworzono nową stronę "{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Omiń w druku}} </includeonly>" 544795 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Omiń w druku}} </includeonly> dvq9t9ur1m1cljpyq9n92fj5ke99fsg Szablon:TODO/opis 10 63629 544803 2026-06-01T00:04:29Z Persino 2851 Utworzono nową stronę "{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony porządkowe | Omiń w druku…" 544803 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == == Opis parametrów == == Przykład == == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony porządkowe | Omiń w druku }} </includeonly> jbgbidcqyhc4ce2sog3ycjhk7h0gv78