Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.47.0-wmf.1
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
Darmowe oprogramowanie
0
9775
542245
492506
2026-05-08T13:31:05Z
Persino
2851
542245
wikitext
text/x-wiki
__NOTOC__ __NOEDITSECTION__
{{status|+100%|Oprogramowanie}}
<noinclude>{{ProstaStronaStart}}{{Div start|klasa=siatka-mobilna}}</noinclude>
{| style="border: 0; width: 100%;" cellpadding="0" cellspacing="10"
| {{Pudełko komórkowe 1|styl=width: 50%|
grafika=[[Grafika:Gnu-color-reiss-head.png|50px]]|
tytuł=Wprowadzenie
<span style="font-size: 60%; font-weight: normal;">([[Darmowe oprogramowanie/Wprowadzenie|jak korzystać z przewodnika]])</span>|
tekst=Problem nagminnego łamania prywatności przez władzę i liczne popularne firmy jak [[w:Google|Google]] czy [[w:Facebook|Facebook]] staje się coraz bardziej nachalny oraz powszechny. Specjaliści od reklam behawioralnych patrzą nam na ręce, w zasadzie można powiedzieć, że w przypadku korzystania z internetu bez zabezpieczeń, mogą wiedzieć o nas więcej niż nasza matka.
Problem rozwiązuje alternatywne oprogramowanie. Dostępne za darmo, legalnie i przede wszystkim bez tzw. [[w:backdoor|backdoorów]]. Przewodnik ten ma za zadanie pokazać te najpopularniejsze i najbardziej wolne zdaniem autorów, darmowe programy i web aplikacje do codziennego użytku.
Aby w pełni cieszyć się możliwościami, jakie niesie ze sobą wykorzystywanie darmowego i [[w:Wolne Oprogramowanie|Wolnego Oprogramowania]], warto skorzystać z gotowych zestawów takich programów, jak zatwierdzonych przez [[w:FOSS|FOSS]] czy przedstawionych tutaj. Niestety na chwilę obecną nie ma polskiego odpowiednika takich zestawów. Warto też spróbować jednego z przedstawionych [[w:System operacyjny|systemów operacyjnych]], w szczególności którejś z [[Linux/Przegląd dystrybucji|dystrybucji Linuksa]], posiadających w pełni funkcjonalny zestaw darmowych programów, niezbędnych w codziennej pracy z komputerem.
}}
{| style="border: 0; width: 100%; background-color: transparent" cellpadding="0" cellspacing="10"
|-
| rowspan="2" {{Pudełko komórkowe 2|styl=width: 40%|
grafika=[[Grafika:System-installer.svg|50px]]|
tytuł=Kategorie|
tekst=<div style="font-size: 95%;">
=== [[Darmowe oprogramowanie/Grafika|Grafika]] [[Plik:Gnome-graphics.png|32px|link=Darmowe oprogramowanie/Grafika]]===
[[Darmowe oprogramowanie/Grafika#Aplikacje CAD|Aplikacje CAD]] · [[Darmowe oprogramowanie/Grafika#Obróbka grafiki|Obróbka grafiki]] · [[Darmowe oprogramowanie/Grafika#Przeglądarki grafik|Przeglądarki grafik]] · [[Darmowe oprogramowanie/Grafika#Pozostałe|Pozostałe]]
=== [[Darmowe oprogramowanie/Gry|Gry]] [[Plik:Gnome-applications-games.svg|32px|link=Darmowe oprogramowanie/Gry]]===
=== [[Darmowe oprogramowanie/Internet|Internet]] [[Plik:Gnome-globe.png|32px|link=Darmowe oprogramowanie/Internet]]===
[[Darmowe oprogramowanie/Internet#Komunikatory|Komunikatory]] · [[Darmowe oprogramowanie/Internet#Pobieranie plików|Menadżery pobierania plików]] · [[Darmowe oprogramowanie/Internet#Obsługa FTP|Obsługa FTP]] · [[Darmowe oprogramowanie/Internet#Pobieranie witryn|Pobieranie witryn]] · [[Darmowe oprogramowanie/Internet#Programy pocztowe|Programy pocztowe]] · [[Darmowe oprogramowanie/Internet#Przeglądarki internetowe|Przeglądarki WWW]] · [[Darmowe oprogramowanie/Internet#Tworzenie stron internetowych|Tworzenie stron WWW]] · [[Darmowe oprogramowanie/Internet#Zdalny dostęp|Zdalny dostęp]]
=== [[Darmowe oprogramowanie/Multimedia|Multimedia]] [[Plik:Redhat-sound video.png|32px|link=Darmowe oprogramowanie/Multimedia]]===
[[Darmowe oprogramowanie/Multimedia#Kodeki|Kodeki]] · [[Darmowe oprogramowanie/Multimedia#Obróbka dźwięku|Obróbka dźwięku]] · [[Darmowe oprogramowanie/Multimedia#Obróbka wideo|Obróbka filmów]] · [[Darmowe oprogramowanie/Multimedia#Obsługa TV|Obsługa TV]] · [[Darmowe oprogramowanie/Multimedia#Odtwarzacze wideo|Odtwarzacze wideo]] · [[Darmowe oprogramowanie/Multimedia#Odtwarzacze audio|Odtwarzacze audio]] · [[Darmowe oprogramowanie/Multimedia#Tworzenie wideo|Tworzenie filmów]] · [[Darmowe oprogramowanie/Multimedia#Zgrywanie audio|Zgrywanie audio]] · [[Darmowe oprogramowanie/Multimedia#Zgrywanie DVD|Zgrywanie DVD]]
=== [[Darmowe oprogramowanie/Biuro|Biuro]] [[Plik:Ooo printeradmin.png|32px|link=Darmowe oprogramowanie/Biuro]]===
[[Darmowe oprogramowanie/Biuro#Edytory strukturalne|Edytory strukturalne]] · [[Darmowe oprogramowanie/Biuro#Edytory wizualne|Edytory wizualne]] · [[Darmowe oprogramowanie/Biuro#Nauka pisania|Nauka pisania]] · [[Darmowe oprogramowanie/Biuro#Obsługa DjVu|Obsługa DjVu]] · [[Darmowe oprogramowanie/Biuro#Obsługa PDF|Obsługa PDF]] · [[Darmowe oprogramowanie/Biuro#Słowniki|Słowniki]] · [[Darmowe oprogramowanie/Biuro#Zarządzanie zadaniami|Zarządzanie zadaniami]]
=== [[Darmowe oprogramowanie/Narzędzia|Narzędzia]] [[Plik:Gnome-system-config.png|32px|link=Darmowe oprogramowanie/Narzędzia]]===
[[Darmowe oprogramowanie/Narzędzia#Informacje o komputerze|Informacje o komputerze]] · [[Darmowe oprogramowanie/Narzędzia#Kasowanie danych|Kasowanie danych]] · [[Darmowe oprogramowanie/Narzędzia#Kompresja danych|Kompresja danych]] · [[Darmowe oprogramowanie/Narzędzia#Menagery plików|Menadżery plików]] · [[Darmowe oprogramowanie/Narzędzia#Modyfikacja systemu|Modyfikacja systemu]] · [[Darmowe oprogramowanie/Narzędzia#Nagrywanie płyt|Nagrywanie płyt]] · [[Darmowe oprogramowanie/Narzędzia#Obrazy dysków|Obrazy dysków]] · [[Darmowe oprogramowanie/Narzędzia#Ochrona haseł|Ochrona haseł]] · [[Darmowe oprogramowanie/Narzędzia#Antywirusy|Ochrona komputera]] · [[Darmowe oprogramowanie/Narzędzia#Odzyskiwanie danych|Odzyskiwanie danych]] · [[Darmowe oprogramowanie/Narzędzia#Narzędzia#Emulatory_CD.2FDVD|Tworzenie obrazów płyt]] · [[:Kategoria:Programowanie|Programowanie]]
=== [[Darmowe oprogramowanie/Edukacja|Edukacja]] [[Plik:Nuvola apps edu miscellaneous H2O.svg|32px|link=Darmowe oprogramowanie/Edukacja]]===
[[Darmowe oprogramowanie/Edukacja#Matematyka|Matematyka]] · [[Darmowe oprogramowanie/Edukacja#Nauka|Nauka]]
</div>}}
| {{Pudełko komórkowe 4|
grafika= |
tytuł=Systemy operacyjne
<span style="font-size: 60%; font-weight: normal;">([[Darmowe oprogramowanie/Systemy operacyjne|zobacz więcej]])</span>|
tekst=[[Plik:Logo Linux Mint.png|40px]] Niewątpliwie dystrybucja o nazwie ''[[Linux Mint]]'' należy do najprostszych w obsłudze. System zawiera już wszystko, co jest niezbędne do wygodnej pracy z komputerem. Zalecam wypróbować polski remix. <span style="font-size: 80%; font-weight: normal;">([http://linuxmint.pl/web-links.html zdobądź Miętowy Remix])</span>
[[Plik:PCLinuxOS logo.svg|40px]] ''PCLinuxOS'' to dystrybucja nakierowana na początkującego użytkownika, dostarczająca najbardziej przydatne funkcje i w pełni funkcjonalny system operacyjny. <span style="font-size: 80%; font-weight: normal;">([http://pclinuxos.com/?page_id=10 zdobądź PCLinuxOS)]</span>
[[Plik:UbuntuCoF.svg|40px|link=Ubuntu/Okładka]] ''[[Ubuntu]]'' jest obecnie najpopularniejszą dystrybucją Linuksa. Polski zespół ochotników dostosowuje go dodatkowo do potrzeb polskojęzycznych użytkowników - warto wypróbować ich remix. <span style="font-size: 80%; font-weight: normal;">([http://ubuntu.pl/pobierz.php zdobądź polski remix Ubuntu])</span>
[[Plik:Trisquel1.png|40px]] ''Trisquel'' Zatwierdzona przez [[w:FSF|FSF]], przyjazna użytkownikom dystrybucja GNU/Linux. <span style="font-size: 80%; font-weight: normal;">([http://trisquel.info/ zdobądź Trisquel])</span>
[[Plik:Openlogo-debianV2.svg|40px|link=Sidux_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Okładka]] ''[[Debian - uniwersalna instalacja|Debian]]'' jest jedną z najstarszych dystrybucji Linuksa, cenioną głównie za stabilność. Warto wypróbować nowsze wersje, zawierające aktualne oprogramowanie. <span style="font-size: 80%; font-weight: normal;">([http://aptosid.com/index.php?module=Content&func=view&pid=2 zdobądź Debiana sid])</span>
}}
|-
| {{Pudełko komórkowe 3|styl=width: 60%|
grafika=[[Grafika:Crystal Clear device dvd unmount.png|50px]]|
tytuł=Zestawy programów
<span style="font-size: 60%; font-weight: normal;">([[Darmowe oprogramowanie/Programy na CD|zobacz więcej]])</span>|
tekst=<div style="font-size: 95%;">
Istnieją projekty, których zadaniem jest zebranie najlepszego dostępnego, darmowego oprogramowania na jednej płycie. Obecnie taki projekt w języku polskim nie jest dostępny, warto jednak zwrócić uwagę na kilka projektów anglojęzycznych:
* [http://www.theopendisc.com/ The Open Disc] - to zbiór najlepszej jakości Wolnego Oprogramowania
* [http://www.theopendisc.com/education/ Open Education Disc] - zawiera oprogramowanie edukacyjne
[[Darmowe_oprogramowanie/Programy_na_cd#Instalacja obrazu płyty|Pomoc w nagraniu pobranych obrazów płyt]]
</div>}}
|-
| colspan="2" {{Pudełko komórkowe 1|styl=width: 50%|
grafika=[[Grafika:Terra globe icon light.png|50px]]|
tytuł=Linki zewnętrzne|
tekst=}}
{| class="wikitable"
| style="padding:0 0.2em;" | [[Image:Desktop computer clipart - Yellow theme.svg|51px]] '''''[http://en.wikipedia.org/wiki/Portal:Free_software Free Software Portal]''''' [[Plik:Flag of the United Kingdom.svg|25px]]
| style="padding:0 0.2em;" | [[Image:Wikipedia-logo-v2-pl.svg|44px]] '''''[[w:Wolne Oprogramowanie|Wolne Oprogramowanie]]'''''
| style="padding:0 0.2em;" | [[Image:NewTux.svg|43px]] '''''[[w:Portal:Linux|Linux Portal]]'''''
| style="padding:0 0.2em;" | [[Image:Wikibooks-logo.svg|51px]] '''''[[Linux]]'''''
| style="padding:0 0.2em;" | '''''[http://prism-break.org/]'''''
|}
|}
|}
<noinclude>{{Div koniec}}{{ProstaStronaKoniec}}</noinclude>
9yb9p4af392x1n6mn9x5902j5lha5yy
542246
542245
2026-05-08T14:08:20Z
Persino
2851
542246
wikitext
text/x-wiki
__NOTOC__ __NOEDITSECTION__
{{status|+100%|Oprogramowanie}}
<noinclude>{{ProstaStronaStart}}{{Div start|klasa=siatka-mobilna}}</noinclude>
{| style="border: 0; width: 100%;border-spacing:0;" cellpadding="0" cellspacing="10"
| {{Pudełko komórkowe 1|styl=width: 50%|
grafika=[[Grafika:Gnu-color-reiss-head.png|50px]]|
tytuł=Wprowadzenie
<span style="font-size: 60%; font-weight: normal;">([[Darmowe oprogramowanie/Wprowadzenie|jak korzystać z przewodnika]])</span>|
tekst=Problem nagminnego łamania prywatności przez władzę i liczne popularne firmy jak [[w:Google|Google]] czy [[w:Facebook|Facebook]] staje się coraz bardziej nachalny oraz powszechny. Specjaliści od reklam behawioralnych patrzą nam na ręce, w zasadzie można powiedzieć, że w przypadku korzystania z internetu bez zabezpieczeń, mogą wiedzieć o nas więcej niż nasza matka.
Problem rozwiązuje alternatywne oprogramowanie. Dostępne za darmo, legalnie i przede wszystkim bez tzw. [[w:backdoor|backdoorów]]. Przewodnik ten ma za zadanie pokazać te najpopularniejsze i najbardziej wolne zdaniem autorów, darmowe programy i web aplikacje do codziennego użytku.
Aby w pełni cieszyć się możliwościami, jakie niesie ze sobą wykorzystywanie darmowego i [[w:Wolne Oprogramowanie|Wolnego Oprogramowania]], warto skorzystać z gotowych zestawów takich programów, jak zatwierdzonych przez [[w:FOSS|FOSS]] czy przedstawionych tutaj. Niestety na chwilę obecną nie ma polskiego odpowiednika takich zestawów. Warto też spróbować jednego z przedstawionych [[w:System operacyjny|systemów operacyjnych]], w szczególności którejś z [[Linux/Przegląd dystrybucji|dystrybucji Linuksa]], posiadających w pełni funkcjonalny zestaw darmowych programów, niezbędnych w codziennej pracy z komputerem.
}}
{| style="border: 0; width: 100%; background-color: transparent" cellpadding="0" cellspacing="10"
|-
| rowspan="2" {{Pudełko komórkowe 2|styl=width: 40%|
grafika=[[Grafika:System-installer.svg|50px]]|
tytuł=Kategorie|
tekst=<div style="font-size: 95%;">
=== [[Darmowe oprogramowanie/Grafika|Grafika]] [[Plik:Gnome-graphics.png|32px|link=Darmowe oprogramowanie/Grafika]]===
[[Darmowe oprogramowanie/Grafika#Aplikacje CAD|Aplikacje CAD]] · [[Darmowe oprogramowanie/Grafika#Obróbka grafiki|Obróbka grafiki]] · [[Darmowe oprogramowanie/Grafika#Przeglądarki grafik|Przeglądarki grafik]] · [[Darmowe oprogramowanie/Grafika#Pozostałe|Pozostałe]]
=== [[Darmowe oprogramowanie/Gry|Gry]] [[Plik:Gnome-applications-games.svg|32px|link=Darmowe oprogramowanie/Gry]]===
=== [[Darmowe oprogramowanie/Internet|Internet]] [[Plik:Gnome-globe.png|32px|link=Darmowe oprogramowanie/Internet]]===
[[Darmowe oprogramowanie/Internet#Komunikatory|Komunikatory]] · [[Darmowe oprogramowanie/Internet#Pobieranie plików|Menadżery pobierania plików]] · [[Darmowe oprogramowanie/Internet#Obsługa FTP|Obsługa FTP]] · [[Darmowe oprogramowanie/Internet#Pobieranie witryn|Pobieranie witryn]] · [[Darmowe oprogramowanie/Internet#Programy pocztowe|Programy pocztowe]] · [[Darmowe oprogramowanie/Internet#Przeglądarki internetowe|Przeglądarki WWW]] · [[Darmowe oprogramowanie/Internet#Tworzenie stron internetowych|Tworzenie stron WWW]] · [[Darmowe oprogramowanie/Internet#Zdalny dostęp|Zdalny dostęp]]
=== [[Darmowe oprogramowanie/Multimedia|Multimedia]] [[Plik:Redhat-sound video.png|32px|link=Darmowe oprogramowanie/Multimedia]]===
[[Darmowe oprogramowanie/Multimedia#Kodeki|Kodeki]] · [[Darmowe oprogramowanie/Multimedia#Obróbka dźwięku|Obróbka dźwięku]] · [[Darmowe oprogramowanie/Multimedia#Obróbka wideo|Obróbka filmów]] · [[Darmowe oprogramowanie/Multimedia#Obsługa TV|Obsługa TV]] · [[Darmowe oprogramowanie/Multimedia#Odtwarzacze wideo|Odtwarzacze wideo]] · [[Darmowe oprogramowanie/Multimedia#Odtwarzacze audio|Odtwarzacze audio]] · [[Darmowe oprogramowanie/Multimedia#Tworzenie wideo|Tworzenie filmów]] · [[Darmowe oprogramowanie/Multimedia#Zgrywanie audio|Zgrywanie audio]] · [[Darmowe oprogramowanie/Multimedia#Zgrywanie DVD|Zgrywanie DVD]]
=== [[Darmowe oprogramowanie/Biuro|Biuro]] [[Plik:Ooo printeradmin.png|32px|link=Darmowe oprogramowanie/Biuro]]===
[[Darmowe oprogramowanie/Biuro#Edytory strukturalne|Edytory strukturalne]] · [[Darmowe oprogramowanie/Biuro#Edytory wizualne|Edytory wizualne]] · [[Darmowe oprogramowanie/Biuro#Nauka pisania|Nauka pisania]] · [[Darmowe oprogramowanie/Biuro#Obsługa DjVu|Obsługa DjVu]] · [[Darmowe oprogramowanie/Biuro#Obsługa PDF|Obsługa PDF]] · [[Darmowe oprogramowanie/Biuro#Słowniki|Słowniki]] · [[Darmowe oprogramowanie/Biuro#Zarządzanie zadaniami|Zarządzanie zadaniami]]
=== [[Darmowe oprogramowanie/Narzędzia|Narzędzia]] [[Plik:Gnome-system-config.png|32px|link=Darmowe oprogramowanie/Narzędzia]]===
[[Darmowe oprogramowanie/Narzędzia#Informacje o komputerze|Informacje o komputerze]] · [[Darmowe oprogramowanie/Narzędzia#Kasowanie danych|Kasowanie danych]] · [[Darmowe oprogramowanie/Narzędzia#Kompresja danych|Kompresja danych]] · [[Darmowe oprogramowanie/Narzędzia#Menagery plików|Menadżery plików]] · [[Darmowe oprogramowanie/Narzędzia#Modyfikacja systemu|Modyfikacja systemu]] · [[Darmowe oprogramowanie/Narzędzia#Nagrywanie płyt|Nagrywanie płyt]] · [[Darmowe oprogramowanie/Narzędzia#Obrazy dysków|Obrazy dysków]] · [[Darmowe oprogramowanie/Narzędzia#Ochrona haseł|Ochrona haseł]] · [[Darmowe oprogramowanie/Narzędzia#Antywirusy|Ochrona komputera]] · [[Darmowe oprogramowanie/Narzędzia#Odzyskiwanie danych|Odzyskiwanie danych]] · [[Darmowe oprogramowanie/Narzędzia#Narzędzia#Emulatory_CD.2FDVD|Tworzenie obrazów płyt]] · [[:Kategoria:Programowanie|Programowanie]]
=== [[Darmowe oprogramowanie/Edukacja|Edukacja]] [[Plik:Nuvola apps edu miscellaneous H2O.svg|32px|link=Darmowe oprogramowanie/Edukacja]]===
[[Darmowe oprogramowanie/Edukacja#Matematyka|Matematyka]] · [[Darmowe oprogramowanie/Edukacja#Nauka|Nauka]]
</div>}}
| {{Pudełko komórkowe 4|
grafika= |
tytuł=Systemy operacyjne
<span style="font-size: 60%; font-weight: normal;">([[Darmowe oprogramowanie/Systemy operacyjne|zobacz więcej]])</span>|
tekst=[[Plik:Logo Linux Mint.png|40px]] Niewątpliwie dystrybucja o nazwie ''[[Linux Mint]]'' należy do najprostszych w obsłudze. System zawiera już wszystko, co jest niezbędne do wygodnej pracy z komputerem. Zalecam wypróbować polski remix. <span style="font-size: 80%; font-weight: normal;">([http://linuxmint.pl/web-links.html zdobądź Miętowy Remix])</span>
[[Plik:PCLinuxOS logo.svg|40px]] ''PCLinuxOS'' to dystrybucja nakierowana na początkującego użytkownika, dostarczająca najbardziej przydatne funkcje i w pełni funkcjonalny system operacyjny. <span style="font-size: 80%; font-weight: normal;">([http://pclinuxos.com/?page_id=10 zdobądź PCLinuxOS)]</span>
[[Plik:UbuntuCoF.svg|40px|link=Ubuntu/Okładka]] ''[[Ubuntu]]'' jest obecnie najpopularniejszą dystrybucją Linuksa. Polski zespół ochotników dostosowuje go dodatkowo do potrzeb polskojęzycznych użytkowników - warto wypróbować ich remix. <span style="font-size: 80%; font-weight: normal;">([http://ubuntu.pl/pobierz.php zdobądź polski remix Ubuntu])</span>
[[Plik:Trisquel1.png|40px]] ''Trisquel'' Zatwierdzona przez [[w:FSF|FSF]], przyjazna użytkownikom dystrybucja GNU/Linux. <span style="font-size: 80%; font-weight: normal;">([http://trisquel.info/ zdobądź Trisquel])</span>
[[Plik:Openlogo-debianV2.svg|40px|link=Sidux_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Okładka]] ''[[Debian - uniwersalna instalacja|Debian]]'' jest jedną z najstarszych dystrybucji Linuksa, cenioną głównie za stabilność. Warto wypróbować nowsze wersje, zawierające aktualne oprogramowanie. <span style="font-size: 80%; font-weight: normal;">([http://aptosid.com/index.php?module=Content&func=view&pid=2 zdobądź Debiana sid])</span>
}}
|-
| {{Pudełko komórkowe 3|styl=width: 60%|
grafika=[[Grafika:Crystal Clear device dvd unmount.png|50px]]|
tytuł=Zestawy programów
<span style="font-size: 60%; font-weight: normal;">([[Darmowe oprogramowanie/Programy na CD|zobacz więcej]])</span>|
tekst=<div style="font-size: 95%;">
Istnieją projekty, których zadaniem jest zebranie najlepszego dostępnego, darmowego oprogramowania na jednej płycie. Obecnie taki projekt w języku polskim nie jest dostępny, warto jednak zwrócić uwagę na kilka projektów anglojęzycznych:
* [http://www.theopendisc.com/ The Open Disc] - to zbiór najlepszej jakości Wolnego Oprogramowania
* [http://www.theopendisc.com/education/ Open Education Disc] - zawiera oprogramowanie edukacyjne
[[Darmowe_oprogramowanie/Programy_na_cd#Instalacja obrazu płyty|Pomoc w nagraniu pobranych obrazów płyt]]
</div>}}
|-
| colspan="2" {{Pudełko komórkowe 1|styl=width: 50%|
grafika=[[Grafika:Terra globe icon light.png|50px]]|
tytuł=Linki zewnętrzne|
tekst=}}
{| class="wikitable"
| style="padding:0 0.2em;" | [[Image:Desktop computer clipart - Yellow theme.svg|51px]] '''''[http://en.wikipedia.org/wiki/Portal:Free_software Free Software Portal]''''' [[Plik:Flag of the United Kingdom.svg|25px]]
| style="padding:0 0.2em;" | [[Image:Wikipedia-logo-v2-pl.svg|44px]] '''''[[w:Wolne Oprogramowanie|Wolne Oprogramowanie]]'''''
| style="padding:0 0.2em;" | [[Image:NewTux.svg|43px]] '''''[[w:Portal:Linux|Linux Portal]]'''''
| style="padding:0 0.2em;" | [[Image:Wikibooks-logo.svg|51px]] '''''[[Linux]]'''''
| style="padding:0 0.2em;" | '''''[http://prism-break.org/]'''''
|}
|}
|}
<noinclude>{{Div koniec}}{{ProstaStronaKoniec}}</noinclude>
d47vx7hnoazrudgf3iadudnewj7eujp
Niemiecki/Gramatyka/Użycie rodzajnika przy nazwach państw, miast i przy innych nazwach własnych
0
22652
542259
541635
2026-05-08T18:38:51Z
EdytaT
2664
542259
wikitext
text/x-wiki
{{Podrozdział|[[Niemiecki|Język niemiecki]]<br>[[Niemiecki/Gramatyka|Gramatyka]]|Użycie rodzajnika przy nazwach państw, miast i przy innych nazwach własnych}}
== Użycie rodzajnika przy nazwach państw i miast ==
* (''Artikelgebrauch bei Staaten- und Städtenamen'')
* Większość nazw państw i miast to rzeczowniki rodzaju '''nijakiego''', przy których z reguły rodzajnik nie występuje. Do tej grupy należą również nazwy państw, w których występuje spójnik '''und''':
*: np. ''(das) [http://pl.wiktionary.org/wiki/Polen#Polen_.28j.C4.99zyk_niemiecki.29 Polen]'', ''(das) [http://pl.wiktionary.org/wiki/Deutschland Deutschland]'', ''(das) [http://pl.wiktionary.org/wiki/Frankreich Frankreich]'', ...
*: np. ''(das) [http://pl.wiktionary.org/wiki/Trinidad_und_Tobago Trinidad und Tobago]'', ''(das) [http://pl.wiktionary.org/wiki/St._Vincent_und_die_Grenadinen St. Vincent und die Grenadinen]'' ...
:* W ''Sing. Gen.'' rzeczowniki te przyjmują końcówkę ''-s'', np. ''die Hauptstadt Polens''.
:* Jeżeli rzeczownikowi temu towarzyszy określający go przymiotnik (lub inny wyszczególniający atrybut), to trzeba użyć rodzajnika, np. ''das mittelalterliche Frankreich''<ref name=Wahrig>[http://books.google.com/books?id=sZGwuIt2FEMC&pg=PA342&lpg=PA342&dq=Wahrig+Irak+Iran+Schweiz&source=bl&ots=kgsJQcYayk&sig=axCkhPsVFvxs4Jz08f4w7QrYwss&hl=pl&ei=cGjtTP6pO4X1sgbqtqDxDg&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBQQ6AEwAA#v=onepage&q=L%C3%A4ndernamen%20im%20Neutrum&f=false praca zbiorowa, ''Wahrig - Richtiges Deutsch leicht gemacht'', wissensmedia GmbH, Gütersloh/München, ISBN 978-3-577-07566-4, ebook]</ref>, ''das Deutschland der Zukunft''<ref>[http://www.spiegel.de/spiegel/print/d-52637617.html Spiegel online, ''Das doppelte Dorf'', 20.08.2007]</ref>, ''so ein Deutschland''<ref>[http://www.spiegel.de/politik/deutschland/0,1518,379027,00.html Spiegel online, ''Der Zwischenkanzler'', 12.10.2005]</ref>.
:* W ''Sing. Gen.'' rzeczownik ten w towarzystwie przymiotnika traci jednak końcówkę ''-s''<ref name=Wahrig/>, np. ''die Bürger des mittelalterlichen Frankreich''.
* Przy nazwach państw będących rzeczownikami rodzaju '''żeńskiego''' zawsze występuje rodzajnik:
*: np. ''die Elfenbeinküste'', ''die Mongolei'', ''die Schweiz'', ''die Slowakei'', ''die Türkei'', ''die Ukraine'', ...
* Nieliczne nazwy państw to rzeczowniki rodzaju '''męskiego''', przy których użycie rodzajnika jest gramatycznie poprawne, ale w pismach oficjalnych używana jest wyłącznie forma bez rodzajnika<ref>[https://www.auswaertiges-amt.de/blob/199312/268090e2272b932f1964807b7be7d64f/staatennamen-data.pdf Auswärtiges Amt, ''Verzeichnis der Staatennamen für den amtlichen Gebrauch in der Bundesrepublik Deutschland'', 12.06.2023, dostęp 05.11.2023]</ref> , np.:
::* ''der [http://pl.wiktionary.org/wiki/Irak#Irak_.28j.C4.99zyk_niemiecki.29 Irak]/Irak''
::* ''der [http://pl.wiktionary.org/wiki/Iran#Iran_.28j.C4.99zyk_niemiecki.29 Iran]/Iran''
::* ''der [http://pl.wiktionary.org/wiki/Libanon#Libanon_.28j.C4.99zyk_niemiecki.29 Libanon]/Libanon''
::* ''der [http://pl.wiktionary.org/wiki/Oman#Oman.28j.C4.99zyk_niemiecki.29 Oman]/Oman''
::* ''der [http://pl.wiktionary.org/wiki/Senegal#Senegal_.28j.C4.99zyk_niemiecki.29 Senegal]/Senegal''
::* ''der [http://pl.wiktionary.org/wiki/Sudan#Sudan_.28j.C4.99zyk_niemiecki.29 Sudan]/Sudan''
::* ''der [http://pl.wiktionary.org/wiki/Tschad#Tschad_.28j.C4.99zyk_niemiecki.29 Tschad]/Tschad''
::* ''der [http://pl.wiktionary.org/wiki/Vatikan#Vatikan_.28j.C4.99zyk_niemiecki.29 Vatikan]/Vatikan''
:* W ''Sing. Gen.'' rzeczowniki te mogą przyjmować końcówkę ''s'', np. ''die Hauptstadt des Irans/des Iran''<ref name=Duden>[https://www.duden.de/sprachwissen/sprachratgeber/Staatennamen Duden online, ''Staatennamen'', 03.10.2018]</ref>; ''die Geschichte des Sudan''<ref name=Wahrig/>
:* Współcześnie rodzaj męski tych nazw jest w pewnych kontekstach wypierany przez rodzaj nijaki<ref name=Wahrig/>, jeżeli nazwa takiego państwa występuje w towarzystwie słowa określającego, np. ''„Das zweite Buch“ führt (...) in '''das moderne Irak''' des Jahres 2003''<ref>[https://dokumen.tips/documents/nachrichten-aus-berlin-und-umgebung-created-date-1182007-113616-am.html?page=5 Lokalnachrichten, ''Historische Romane von Zabern'', dostęp 05.11.2023]</ref>.
* '''''Kongo''''' jest nazwą, która może oznaczać dwa kraje: ''Republikę Kongo'' oraz ''Demokratyczną Republikę Konga''. Rzeczownik ten spotyka się zarówno w rodzaju męskim jak i nijakim. Dawniej był wyłącznie rodzaju męskiego, a obecnie jest coraz bardziej wypierany przez rodzaj nijaki. Użyty w rodzaju męskim podlega opisanym wyżej regułom dla nazw państw rodzaju męskiego, a w rodzaju nijakim zasadom dla nazw państw rodzaju nijakiego.
:* W pismach oficjalnych w odniesieniu do ''Demokratycznej Republiki Konga'' używa się wyłącznie pełnej oficjalnej nazwy tego państwa.
* W przypadku '''wieloczłonowych nazw''' państw, składających się z przymiotnika pospolitego i rzeczownika, rodzajnik występuje zawsze, np:
*: ''das Vereinigte Königreich'', ''die Vereinigten Staaten'', ...
:* Ich odmiana odpowiada ogólnym zasadom deklinacji.<ref name=Wahrig/>
== Użycie rodzajnika przy imionach i nazwiskach ==
* Imiona i nazwiska występują z reguły bez rodzajnika.
:* Jeżeli imieniu lub nazwisku towarzyszy określający je przymiotnik (lub inny wyszczególniający atrybut), to trzeba użyć rodzajnika, np. ''die kleine Brigitte''.
* W ''Sing. Gen.'' generalnie występuje końcówka deklinacyjna ''-s'', np. ''das Leben Kafkas'', ''Angela Merkels Politik''.
:* Jedynie jeżeli w ''Sing. Gen.'' imię lub nazwisko występuje z rodzajnikiem, to traci końcówkę ''-s'', np. ''die Eltern des kranken Otto''.
:* W ''Sing. Gen.'' przy wymienianiu imion lub nazwisk jednej osoby końcówka deklinacyjna występuje tylko przy ostatnim członie, np. ''Wolfgang Amadeus Mozarts Briefe''.
:* Imiona i nazwiska zakończone na ''-s, -ß, -z, -x'' tworzą ''Sing. Gen.'' w piśmie poprzez dodanie apostrofu (np. ''Marx' Werke''), a w mowie najczęściej przez dodanie przyimka ''von'' i zmianę przypadku na ''Dat.'' (np. ''das Auto von Max'').
:* W połączeniu z tytułami użytymi z rodzajnikiem tylko tytuły ulegają deklinacji, natomiast imiona i nazwiska pozostają nieodmienne (np. ''die These des Professors Sauerland''), ale jeżeli tytuł występuje bez rodzajnika, to w ''Sing. Gen.'' końcówka ''-s'' jest dodawana do nazwiska, np. ''der Vortrag Frau Doktor Majewskas''.
== Źródła ==
<references/>
ejsx4dtz03ks02rw9f3p0hxe8lzaobz
Śpiewnik/Indeks tematyczny
0
56092
542244
541757
2026-05-08T13:16:28Z
Persino
2851
542244
wikitext
text/x-wiki
<noinclude>__NOTOC__{{ProstaStronaStart}}{{Div start|klasa=siatka-mobilna}}</noinclude>
Poniższe grupy nie są rozłączne (piosenka może należeć do więcej niż jednej kategorii).<br>
{| cellspacing="10" width="100%"
| width=50% |
| width=50% |
|-
|{{Pudełko komórkowe 1|tytuł= Pieśni patriotyczne
|grafika=
|tekst= * {{sr|Bogurodzica}}
* {{sr|Boże, coś Polskę}}
* {{sr|Czarna sukienka}}
* {{sr|Cześć polskiej ziemi, cześć}}
* {{sr|Cztery rzeczy w Polsce słyną}}
* {{sr|Leci liście z drzewa}}
* {{sr|Mazurek Dąbrowskiego}}
* {{sr|O Matko Polko}}
* {{sr|Rota}}
* {{sr|Święta miłości kochanej ojczyzny}}
* {{sr|Witaj majowa jutrzenko}}
}}
|{{Pudełko komórkowe 3|tytuł= Piosenki wojskowe
|grafika=
|tekst=* {{sr|Bartoszu, Bartoszu}}
* {{sr|Bywaj dziewczę zdrowe}}
* {{sr|Duma ukrainna}}
* {{sr|Idzie żołnierz borem, lasem}}
* {{sr|Jak to na wojence ładnie}}
* {{sr|Jeszcze jeden mazur dzisiaj}}
* {{sr|O mój rozmarynie}}
* {{sr|Tam na błoniu błyszczy kwiecie}}
* {{sr|W krwawem polu srebrne ptaszę}}
* {{sr|Wojenko, wojenko}}
* {{sr|Za Niemen het precz}}
}}
|-
|{{Pudełko komórkowe 2
|tytuł= Pieśni nabożne
|grafika=
|tekst= {{Wikiźródła|Śpiewnik kościelny}}
* {{sr|Boże wieczny, Boże żywy}}
* {{sr|Gaude mater}}
* {{sr|Kto się w opiekę}}
* {{sr|Ojcze z niebios Boże Panie}}
* {{sr|Pieśń poranna}}
* {{sr|Pieśń wieczorna}}
* {{sr|Potężny Boże}}
* {{sr|Serdeczna Matko}}
* {{sr|Spuśćcie nam na ziemskie niwy}}
* {{sr|Veni Creator}}
* {{sr|Wesoły nam dziś dzień nastał}}
* {{sr|Zdrowaś bądź Maryja}}
}}
|{{Pudełko komórkowe 4|tytuł= Kolędy
|grafika=
|tekst={{Wikiźródła|Wikitomik:Kancjonał bożonarodzeniowy... przez Wikiskrybów zebrany|Kancjonał bożonarodzeniowy}}
* {{sr|Anioł pasterzom mówił}}
* {{sr|Bóg się rodzi}}
* {{sr|Cicha noc}}
* {{sr|Dzisiaj w Betlejem}}
* {{sr|Gdy się Chrystus rodzi}}
* {{sr|Lulajże, Jezuniu}}
* {{sr|Mizerna, cicha}}
* {{sr|O, gwiazdeczko, coś świeciła}}
* {{sr|Przybieżeli do Betlejem}}
* {{sr|W żłobie leży}}
* {{sr|Witaj gwiazdko złota}}
}}
|-
|{{Pudełko komórkowe 1|tytuł= Piosenki i melodie ludowe
|grafika=
|tekst=* {{sr|Choćbym ja jeździł we dnie i w nocy}}
* {{sr|Czerwone jabłuszko}}
* {{sr|Hej, z góry, z góry jadą Mazury}}
* {{sr|Leć głosie po rosie, po niskiej leszczynie}}
* {{sr|Leć głosie po rosie, prosto ku laskowi }}
* {{sr|Oj, chmielu, chmielu}}
* {{sr|Oj ty horo kamennaja}}
* {{sr|Piękna nasza Polska cała}}
* {{sr|Płynie Wisła, płynie}}
* {{sr|Szła dzieweczka}}
* {{sr|Umarł Maciek, umarł}}
* {{sr|W murowanej piwnicy}}
* {{sr|W polu lipeńka}}
* {{sr|Zakochali się}}
}}
|{{Pudełko komórkowe 3|tytuł= Piosenki dla dzieci
|grafika=
|tekst= {{Wikiźródła|Śpiewnik dla dzieci}}
* {{sr|Jesienią}}
* {{sr|Kołysanka Brahmsa }}
* {{sr|Kukułeczka}}
* {{sr|Ogródek}}
* {{sr|Śnieżyca}}
* {{sr|W polu}}
* {{sr|Zajączek}}
* {{sr|Zła zima}}
}}
|-
|{{Pudełko komórkowe 2
|tytuł= Piosenki o miłości
|grafika=
|tekst=* {{sr|Dalibóg, że powiem mamie}}
* {{sr|Laura i Filon}}
* {{sr|Marzenie o grajku }}
* {{sr|Panicz i dziewczyna }}
* {{sr|Serce nie sługa}}
* {{sr|Śliczne gwoździki, piękne tulipany}}
* {{sr|Staropolskie zaloty}}
* {{sr|To są czary}}
* {{sr|Ty pójdziesz górą}}
* {{sr|Z wysokich Parnasów}}
* {{sr|Za Niemen het precz}}
* {{sr|Zakochali się}}
* {{sr|Życzenie}}
}}
|{{Pudełko komórkowe 4
|tytuł= Piosenki młodzieżowe
|grafika=
|tekst=* {{sr|Gaudeamus igitur}}
* {{sr|Hej koledzy, po mozołach}}
* {{sr|Hej koledzy, z wspólnej czary}}
* {{sr|Ospały i gnuśny, zgrzybiały ten świat}}
* {{sr|Po cóż ciągle w mieście siedzieć}}
* {{sr|Polska młodzież niech nam żyje}}
* {{sr|Upływa szybko życie}}
* {{sr|Użyjmy dziś żywota}}
* {{sr|Sadźmy, przyjacielu, róże}}
* {{sr|Szła dzieweczka}}
* {{sr|Żal, żal za jedyną}}
}}
|-
|{{Pudełko komórkowe 1|tytuł= Piosenki biesiadne
|grafika=
|tekst= * {{sr|Góralu, czy ci nie żal}}
* {{sr|Kiedy nam się pora zdarza}}
* {{sr|Komu dzwonią, temu dzwonią}}
* {{sr|Kurdesz}}
* {{sr|Małgorzatka}}
* {{sr|Pije Kuba do Jakuba}}
* {{sr|Precz, precz od nas smutek wszelki}}
* {{sr|Szlachetne zdrowie}}
* {{sr|Szła dzieweczka}}
* {{sr|Szynkareczko, szafareczko}}
* {{sr|Ten mem zdaniem dobrze żyje}}
* {{sr|Wdzięczna miłości kochanej szklanice }}
* {{sr|Wesoło, bracia, wesoło}}
}}
|{{Pudełko komórkowe 3|tytuł= Pieśni zadumy i tęsknoty. Pożegnania
|grafika=
|tekst= * {{sr|Znaszli ten kraj}}
'''Tęsknota za ukochaną/ukochanym:'''
* {{sr|Za Niemen het precz}}
'''Tęsknota za przeszłością:'''
* {{sr|Cieszmy się bracia nadzieją}}
* {{sr|Na dolinie zawierucha}}
* {{sr|Nie tak in illo tempore bywało|Nie tak ''in illo tempore'' bywało}}
* {{sr|O, gwiazdeczko, coś błyszczała}}
* {{sr|Ozdobo twarzy, pokrętne wąsy}}
* {{sr|W tył wyloty, w górę wąsy}}
'''Tęsknota za krajem rodzinnym:'''
* {{sr|Góralu, czy ci nie żal}}
* {{sr|Pożegnanie Childe Harolda}}
* {{sr|W głos serdeczna dumka płynie}}
}}
|-
|{{Pudełko komórkowe 2
|tytuł= Dumki i ballady
|grafika=
|tekst='''Ballady literackie:'''
* {{sr|Alpuhara}}
* {{sr|Lilie}}
* {{sr|Obie kochał pan}}
* {{sr|Świtezianka}}
* {{sr|Trzech Budrysów}}
'''Ballady ludowe:'''
* {{sr|Krakowianka i kat}}
* {{sr|Podolanka}}
* {{sr|Przyjechał Jasieńko}}
* {{sr|Stała nam się nowina}} → {{sr|Lilie}}
* {{sr|W okolicznem mieście}}
* {{sr|Zielony dzban}}
}}
|{{Pudełko komórkowe 4|tytuł= Piosenki wędrówkowe
|grafika=
|tekst='''Piosenki łowieckie:'''
* {{sr|Hej hej, hej hej, do kniej, do kniej}}
* {{sr|Pojedziemy na łów}}
* {{sr|Siedzi sobie zając pod miedzą}}
* {{sr|Szła dzieweczka}}
* {{sr|Śród opok i jarów}}
* {{sr|Zajączek}}
'''Piosenki żeglarskie:'''
* {{sr|Choć burza huczy wkoło nas}}
* {{sr|Hej, żeglujże, żeglarzu}}
* {{sr|Wesoło żeglujmy, wesoło}}
'''Piosenki o górach:'''
* {{sr|Czerwony pas}}
* {{sr|Góralu, czy ci nie żal}}
* {{sr|Jak dobrze nam}}
}}
|-
|{{Pudełko komórkowe 1|tytuł= Hymny i hejnały
|grafika=
|tekst= * {{sr|Mazurek Dąbrowskiego}} (hymn Polski)
* {{sr|Deutschlandlied}} (hymn Niemiec)
* {{sr|God Save the King}} (hymn Wielkiej Brytanii)
* {{sr|Hatikvah}} (hymn Izraela)
* {{sr|Marsylianka}} (hymn Francji)
* {{sr|Oda do radości}} (hymn Unii Europejskiej)
* {{sr|Ще не вмерла України і слава, і воля}} (hymn Ukrainy)
}}
|{{Pudełko komórkowe 3|tytuł= Pieśni (o) pracy
|grafika=
|tekst=* {{sr|Do pracy, razem do pracy}}
* {{sr|Nad mularską profesyą}} (pieśń murarza)
* {{sr|Polski przemysł niech nam żyje}}
* {{sr|Prząśniczka}}
* {{sr|Rześko, żwawo, stuku puku}} (pieśń kowala)
* {{sr|Słynie Gopło i Kruszwica}} (piosnka kołodzieja)
* {{sr|W ogrodzie na wodzie}} (przegląd zawodów)
* {{sr|Wio, koniku}} (piosnka furmana)
* {{sr|Wszystkich dziś ciekawość budzi}} (piosnka furmana)
}}
|-
|{{Pudełko komórkowe 2
|tytuł= O muzyce
|grafika=
|tekst=* {{sr|Lutni moja ulubiona}}
* {{sr|Marzenie o grajku }}
* {{sr|Wezmę ja skrzypki}}
}}
|{{Pudełko komórkowe 4|tytuł= Pieśni i piosenki o śmierci
|grafika=
|tekst=* {{sr|Był Matysek chłop przed laty}}
* {{sr|Komu dzwonią, temu dzwonią}}
* {{sr|Umarł Maciek, umarł}}
}}
|-
|{{Pudełko komórkowe 1|tytuł= Pieśni i piosenki po angielsku
|grafika=
|tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:en:Main_Page|anglojęzycznych Wikibooks]] podręcznik '''[[:en:Songbook/Content#123|Songbook]]'''}}
* {{sr|Auld Lang Syne}}
* {{sr|God Save the King}} (hymn Wielkiej Brytanii)
* {{sr|Greensleeves}}
}}
|{{Pudełko komórkowe 3|tytuł= Śpiewy w języku łacińskim
|grafika=
|tekst=* {{sr|Gaude mater}}
* {{sr|Gaudeamus igitur}}
* {{sr|Veni Creator}}
}}
|-
|{{Pudełko komórkowe 2
|tytuł= Pieśni i piosenki po niemiecku
|grafika=
|tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:de:Hauptseite|niemieckojęzycznych Wikibooks]] podręcznik '''[[:de:Liederbuch/_Inhalt#Lieder|Liederbuch]]'''}}
* {{sr|Deutschlandlied}} (hymn Niemiec)
* {{sr|Kołysanka Brahmsa }}
* {{sr|Oda do radości}}
}}
|{{Pudełko komórkowe 4|tytuł= Pieśni i piosenki po ukraińsku
|grafika=
|tekst=* {{sr|Дзюба}}
* {{sr|Їхав козак за Дунай}}
* {{sr|Ще не вмерла України і слава, і воля}}
}}
|-
|}
<noinclude>{{Div koniec}}{{ProstaStronaKoniec}}</noinclude>
0kz3zfpgkk7s1lcadhy1tb7lwz6ofca
Moduł:Techniczne
828
56417
542272
530938
2026-05-09T08:35:52Z
Persino
2851
542272
Scribunto
text/plain
local p={};
p["Pierwszy niepusty"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local i=1;
local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"](args,"test");
local licznik=1;
while true do
local test=args["test"..i];
local _i=args[i];
local zmienna=test or _i;
local czy_tak=parametry_modul.CzyTak(zmienna);
if(czy_tak)then
return (_i)and _i or "{{{"..i.."}}}";
end;
if(licznik>=liczba_elementow_w_tablicy_args)then return;end;
if(zmienna)then licznik=licznik+1;end;
i=i+1;
end;
end;
function p.NowikiParametr(frame)
local parametr=frame.args[1];
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
parametr=mw.ustring.gsub(parametr,"(.)",function(s)
return techniczne_dane_modul.tablica_szablonowa[s] or techniczne_dane_modul.tablica_linki[s] or techniczne_dane_modul.tablica_tagowa[s];
end);
return parametr;
end;
function p.EncodeParametr(frame)
local parametr=frame.args[1];
local szablonowe_dane_modul=require("Module:Szablonowe/dane");
parametr=mw.ustring.gsub(parametr,"(\")([^\"]+)(\")",function(a,str,b)
return a..mw.text.encode(str)..b;
end)
parametr=mw.ustring.gsub(parametr,"<(/?)([^<>]+)>",function(znak,str)
local znacznik=mw.ustring.match(str,"^(%a+)$") or mw.ustring.match(str,"^(%a+)%s+");
if(znacznik)then
znacznik=mw.getContentLanguage():lc(znacznik);
local czy_znacznik=szablonowe_dane_modul.tablica_html_mechanizmu_mediawiki[znacznik];
if(not czy_znacznik)then
return "&lt;"..znak..mw.text.encode(str).."&gt;";
end;
end;
end);
parametr=mw.text.decode(parametr);
parametr=mw.text.encode(parametr);
return parametr;
end;
p["PełnaNazwaOpisuModułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa");
local komunikat = mw.message.new('Scribunto-doc-page-name', '$1');
local zawartosc_komunikatu;
if(komunikat:exists())then
zawartosc_komunikatu=komunikat:plain();
zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu);
else
zawartosc_komunikatu="Module:$1/opis";
end;
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_wedlug_strony_komunikatu=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu);
local pelna_nazwa_strony_podanej_lub_aktualnej=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"]();
local wzor_pelnej_nazwy_strony=mw.ustring.gsub(pelna_nazwa_strony_wedlug_strony_komunikatu,"%$1",".-");
if(not mw.ustring.match(pelna_nazwa_strony_podanej_lub_aktualnej,"^"..wzor_pelnej_nazwy_strony.."$"))then
local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony_podanej_lub_aktualnej);
local przetworzona_nazwa_strony=p["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony);
local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony)
local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu);
return pelna_strona_opisu;
else
return pelna_nazwa_strony_podanej_lub_aktualnej;
end;
end;
p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local wiki_modul=require("Module:Wiki");
local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
local nazwy_modul=require("Module:Nazwy");
local uchwyt_przestrzeni_nazw;
if(czy_biezace_wiki)then
uchwyt_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,uchwyt="tak",};
else
uchwyt_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,uchwyt="tak",};
end;
if(uchwyt_przestrzeni_nazw)then
return "tak";
else
return;
end;
end;
p["WzórDanejPrzestrzeniNazw"] = function (frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end )
wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
wzor="[%s_]*"..wzor.."[%s_]*";
return wzor;
end;
p["WzórNazwyStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local strona=PobierzParametr(1) or PobierzParametr("nazwa");
local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1");
wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
wzor="[%s_]*"..wzor.."[%s_]*";
return wzor;
end;
p["WzórPełnejNazwyStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local strona=PobierzParametr(1) or PobierzParametr("nazwa");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_strony=nazwy_modul["NAZWASTRONY"](strona);
if(nazwa_przestrzeni~="")then
nazwa_przestrzeni=p["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni);
end;
nazwa_strony=p["WzórNazwyStrony"](nazwa_strony);
return ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_strony;
end;
p["TekstBezOdwołańDoParametrówWeWzorze"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"%%%%","%%%%%%");
tekst=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1");
return tekst;
end;
p["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"%%(%a+)","%%%%%1");
return tekst;
end;
p["PrzekształćWzórDoCzystegoTekstu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
return tekst;
end;
function p.CzyStronaIstniejeJejParametry(nazwa_strony_lub_uchwyt_strony,czy_zawartosc)
local uchwyt_strony;
local parametry_modul=require("Module:Parametry");
local czy_string=parametry_modul.TypeString(nazwa_strony_lub_uchwyt_strony);
if(czy_string)then
uchwyt_strony = mw.title.makeTitle('',nazwa_strony_lub_uchwyt_strony);
else
uchwyt_strony=nazwa_strony_lub_uchwyt_strony;
end;
local id=uchwyt_strony.namespace;
if((id==-1)or(id==-2))then
local czy_istnieje=uchwyt_strony and uchwyt_strony.exists or nil;
if(not czy_zawartosc)then
return czy_istnieje;
else
return uchwyt_strony,nil,czy_istnieje;
end;
else
local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
if(czy_zawartosc)then
if(not tekst_artykulu)then
return uchwyt_strony,nil,false;
end;
return uchwyt_strony,tekst_artykulu,true;
end;
if(not tekst_artykulu)then
return false;
end;
return true;
end;
end;
function p.PoliczZbiory(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local liczba_istniejacych_zbiorow=0;
local tabela_uchwytow_stron={};
for _,nazwa_strony in ipairs(args) do
local uchwyt_strony,tekst_artykulu,czy_istnieje = p.CzyStronaIstniejeJejParametry(nazwa_strony,true);
tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,};
if(czy_istnieje)then
liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1;
end;
end;
return liczba_istniejacych_zbiorow,tabela_uchwytow_stron;
end;
function p.TransformacjaWzoru(ciag)
return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1");
end;
p["WyświetlajKodySpecjalne"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
local html_modul=require("Module:Html");
local i=html_modul.KodHTMLZnaku("&");
local hash=html_modul.KodHTMLZnaku("#");
local sr=html_modul.KodHTMLZnaku(";");
text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr);
text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr);
return text;
end;
function p.Wikikod(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
local nazwa_modulu=((parametry_modul["CzyTakCiąg"](przestrzen)) and (przestrzen..":") or "")..(nazwa or "Przykłowa strona");
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local szablonowe_modul=require("Module:Szablonowe");
local tab_komentarze={};
local licznik_komentarze=1;
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,nazwa_modulu,nil,false,nil,true,nil,nil,nil,nil,function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nie ma takiej strony lub artykulu."}};
end;
tekst=p["TekstBezOdwołańDoParametrówWeWzorze"](tekst);
local html_modul=require("Module:Html");
tekst=mw.ustring.gsub(tekst,"&(%a+);","&%1;");
tekst=mw.ustring.gsub(tekst,"&#(%d+);","&#%1;");
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
local tab_szablonowa=techniczne_dane_modul.tablica_szablonowa;
local tab_linki=techniczne_dane_modul.tablica_linki;
local tab_tagow=techniczne_dane_modul.tablica_tagowa;
local tabela_wikitabelowa=techniczne_dane_modul.tabela_wikitabelowa;
local tab_zmienne=function(s)
return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s];
end;
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe")
local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local TekstBezKomentarzy=function(tekst,poczatek)
tekst=mw.ustring.gsub(tekst,(poczatek or "")..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE"),function(kod)
local kod=tonumber(kod);
local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod];
if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then
return "";
end;
return nil;
end);
--tekst=parametry_modul["Odstępy"](tekst);
return tekst;
end;
local UsuwanieModyfikatoroweStron=function(nazwa,tabela_modyfikatorow)
if(not tabela_modyfikatorow)then return nazwa,"";end;
--local nazwa,komentarz=TekstBezKomentarzy(nazwa,"^[%s_]*");
local modyfikatory="";
repeat
local ile_zmieniono=0;
local __modyfikatory=nil;
nazwa=mw.ustring.gsub(nazwa,"^([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE")..")",function(poczatek,kod)
local kod=tonumber(kod);
local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod];
if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then
__modyfikatory=poczatek;
return "";
end;
end);
nazwa=mw.ustring.gsub(nazwa,"^(([%s_]*)(#?)([%s_]*)([^%s#:_]+)([%s_]*:))",function(calosc,a,b,c,d,e)
d=b..TekstBezKomentarzy(d)..":";
if(tabela_modyfikatorow[d])then
ile_zmieniono=ile_zmieniono+1;
modyfikatory=modyfikatory..(__modyfikatory or "")..calosc;
return "";
end;
return nil;
end);
if(ile_zmieniono==0)then
nazwa=(__modyfikatory or "")..nazwa;
end;
until (ile_zmieniono==0);
return nazwa,modyfikatory;
end;
local ZamieniajZnakiNaMikroSzablony=function(szablon,__funkcja)
szablon=mw.ustring.gsub(szablon,"(.)",function(znak)
local odpowied;
if(__funkcja)then
odpowied=__funkcja(znak);
else
odpowied=tab_linki[znak] or tab_szablonowa[znak];
end;
if(odpowied)then return odpowied;end;
return znak;
end);
return szablon;
end;
local CzyBezDwukropka=function(dwukropki)
return (not mw.ustring.match(dwukropki,":") and "tak" or "");
end;
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local szablon_old=szablon;
szablon=TekstBezKomentarzy(szablon);
local pseudoszablon,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
if((pseudoszablon)and(((tabela_modyfikatorow)and((szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))
or(tabela_modyfikatorow["#invoke:"])
or(tabela_modyfikatorow["int:"]))
and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:")))
or((not tabela_modyfikatorow)and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:")))
))then
local UstawianieLinkowe=function(szablon,ktore)
local SzablonStrona=function(szablon)
local strona=TekstBezKomentarzy(szablon);
strona=parametry_modul["Odstępy"](strona);
local nazwa,modyfikatory=UsuwanieModyfikatoroweStron(szablon,tabela_modyfikatorow);
strona=mw.ustring.gsub(strona,"=","{{=}}");
nazwa=mw.ustring.gsub(nazwa,"=","{{=}}");
return "{{s|oryginalna=tak|analiza=tak|"..strona
.."|nazwa="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..nazwa..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)
.."|modyfikatory="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..modyfikatory..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)
..(ktore and "|" or "}}");
end;
if(ktore)then
szablon=mw.ustring.gsub(szablon,"=","{{=}}");
szablon,ile=mw.ustring.gsub(szablon,"^{{([^|]-)|",function(szablon)
return SzablonStrona(szablon);
end);
else
szablon=mw.ustring.gsub(szablon,"^{{([^|]-)}}",function(szablon)
return SzablonStrona(szablon);
end);
end;
return szablon;
end;
if(mw.ustring.match(szablon_old,"|"))then
if(mw.ustring.match(szablon,"^{{[^|]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."[^|]*|"))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
else
return UstawianieLinkowe(szablon_old,true);
end;
else
if(mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
end;
if(pseudoszablon)then
if(((not tabela_modyfikatorow)or((not tabela_modyfikatorow["int:"])and(not tabela_modyfikatorow["#invoke:"])))and(tab_zmienne(pseudoszablon)))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
else
return UstawianieLinkowe(szablon_old,false);
end;
else
return UstawianieLinkowe(szablon_old,false);
end;
end;
else
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
end;
elseif(obiekt=="LINKW")then
local __szablon=TekstBezKomentarzy(szablon);
local __dwukropki,__strona=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)%]%]$");
if(__strona)then
if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)%]%]$");
return "{{l|"..strona.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}"
end;
else
local __dwukropki,__strona,__nazwa=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)|(.*)%]%]$");
if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)|(.*)%]%]$");
return "{{l|"..strona.."|"..nazwa.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}";
end;
end;
elseif(obiekt=="LINKZ")then
local __szablon=TekstBezKomentarzy(szablon);
local __strona=mw.ustring.match(__szablon,"^%[%s*(%S+)%s*%]$");
if(__strona)then
if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s*)%]$");
return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}";
end;
else
local __strona,__nazwa=mw.ustring.match(__szablon,"^%[(%s*%S+)(%s+.-)%]$");
if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s+.-)%]$");
return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}";
end;
end;
elseif(obiekt=="ZMIENNA")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_szablonowa[znak];
return odpowied;
end);
return szablon;
elseif((obiekt=="NOWIKI")
or(obiekt=="PRE")
or(obiekt=="MATH")
or(obiekt=="ŹRÓDŁO")
or(obiekt=="GALERIA")
or(obiekt=="MAPAOBRAZU")
or(obiekt=="PUDEŁKOWEJŚCIA")
)then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_linki[znak] or tab_szablonowa[znak] or tab_tagow[znak];
return odpowied;
end);
return szablon;
elseif(obiekt=="QUIZ")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_szablonowa[znak] or tab_tagow[znak];
return odpowied;
end);
return szablon;
elseif((obiekt=="ZNACZNIK")or(obiekt=="INCLUDE"))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=(znak~="\"")and tab_tagow[znak] or nil;
return odpowied;
end);
return szablon;
elseif(obiekt=="ATRYBUTY")then
szablon=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("(UCIECZKI)"),function(obiekt,kod)
kod=tonumber(kod);
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
return szablon;
end);
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_tagow[znak] or nil;
return odpowied;
end);
return szablon;
elseif(obiekt=="WIKITABELA")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tabela_wikitabelowa[znak];
return odpowied;
end);
return szablon;
elseif(obiekt=="INNEPRE")then
--szablon=mw.ustring.gsub(szablon,"^[^%S\n]","&nbsp;");
return szablon;
else
return szablon;
end;
end);
tekst=frame:getParent():preprocess(tekst);
tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ"),function(kod)
kod=tonumber(kod);
local komentarz=tab_komentarze[kod];
komentarz=mw.ustring.gsub(komentarz,"^<!%-%-(.-)%-%->$",function(zawartosc)
return "<!--"..zawartosc.."-->";
end);
return komentarz;
end);
return tekst;
end;
p["WikikodStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
if(not parametry_modul.CzyTak(nazwa))then return;end;
local title=mw.title.makeTitle(przestrzen,nazwa);
local text=title and title:getContent() or false;
if(not text)then return;end;
text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
return text;
end;
function p.LuaSubst(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local strona=args[1] or args["strona"];
if(not strona)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}};
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}};
end;
local inkludowany=parametry_modul.CzyTak(args["inkludowana"]);
if(inkludowany)then
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
else
local dokumentacja=parametry_modul.CzyTak(args["dokumentacja"]);
if(dokumentacja)then
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","%1");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","");
end;
end;
return tekst;
end;
p["LuaSurowySzablonSubst"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local strona=args["strona"];
if(not strona)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}};
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}};
end;
---
---
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,nil,nil,nil,
function(tekst_artykulu,tab_element)
return nil,true,nil,true;
end,
function(nazwa)
return true;
end);
local specjalne_modul=require("Module:Specjalne");
local tab_modyfikatory={["#if:"]=true,["#ifeq:"]=true,["#ifexist:"]=true,["#ifexpr:"]=true,};
local tab_mediawiki=function(s)
return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s];
end;
local tabela_zmiennych={["site"]=true;};
local tablica_danych_parametrow_szablonu_strony={};
local function UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon)
local ile=0;
local szablon=mw.ustring.gsub(szablon,"({{{.+}}})",function(zmienna)
local numerowana=mw.ustring.match(zmienna,"^{{{%s*(%d+)%s*|");
if(numerowana)then
local ile2=0;
zmienna=mw.ustring.gsub(zmienna,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
ile=ile+1;
ile2=ile2+1;
return a..c;
end;
end);
return (ile2>0)and zmienna or nil;
end;
end);
return szablon,ile;
end;
local function UsuwaniePseudoSzablonowe(szablon)
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(tab_mediawiki(nazwa_szablonu))then
return "";
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
end;
return nil, true;
end);
return szablon;
end;
local function PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(tabela_modyfikatorow)then
for name,value in pairs(tabela_modyfikatorow)do
if(tab_modyfikatory[name])then
local warunek,dalej=mw.ustring.match(szablon,"^{{([^{}|]+)(.-)$");
if(warunek)then
local iterator=szablonowe_modul.IteratorSzablonowyZakodowanegoTekstu(nil,dalej,nil,tablica_analizy_obiektow_strony_dany_modul);
local czy_usunac_kreski_pionowe=false;
for szablon_dalej,obiekt_dalej,kod_dalej in iterator do
if(obiekt_dalej=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon_dalej,tablica_danych_parametrow_szablonu_strony,kod_dalej,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((mw.ustring.match(nazwa_szablonu,"^Infobox .*$"))or(mw.ustring.match(nazwa_szablonu,"^Link%u")))then
return true;
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then
czy_usunac_kreski_pionowe=true;
break;
end;
elseif(obiekt_dalej=="LINKW")then
local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon_dalej);
if(wynik)then
czy_usunac_kreski_pionowe=true;
break;
end;
end;
end;
if(czy_usunac_kreski_pionowe)then
warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
return szablon;
end;
end);
return "{{"..warunek..dalej;
else
local warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul);
return "{{"..warunek..dalej;
end;
end;
end;
end;
end;
end;
local function PlikowePrzetwarzanie(szablon,obiekt,kod)
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
end;
return nil,true;
end);
return szablon;
end;
local function PrzetwarzanieDivowe(szablon,obiekt,kod)
local szablon,ile=UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon);
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
end;
return nil,true;
end);
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
return wynik;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
return nil,true;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
end;
end;
return nil,true;
end);
return szablon;
end;
local function PrzetwarzanieSzablonowe(szablon,obiekt,kod)
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local infobox=mw.ustring.match(nazwa_szablonu,"^Infobox .*$");
local link=mw.ustring.match(nazwa_szablonu,"^Link%u");
if((infobox)or(link))then
if((link)and(not infobox))then
szablon="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>";
end;
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod ,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return nil;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
if(wynik)then return wynik;end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
return nil,true;
elseif(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(((infobox)and(b==""))or((link)and((tonumber(a1))or(tabela_zmiennych[a1]))))then
return a..c;
end;
end);
return szablon;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
szablon=PrzetwarzanieDivowe(szablon,obiekt,kod);
return szablon;
end;
return nil,true;
end;
return szablon;
end);
return szablon;
end;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
if(wynik)then return wynik;end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
return wynik;
end;
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
szablon=PrzetwarzanieSzablonowe(szablon,obiekt,kod);
if(szablon)then return szablon;end;
elseif(obiekt=="ZMIENNA")then
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
return szablon;
end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
szablon=PrzetwarzanieDivowe(szablon,obiekt,kod);
return szablon;
end;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
else
local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon);
if(wynik)then
local spanramka="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>";
return spanramka;
end;
end;
end;
return szablon;
end);
return tekst;
end;
function p.NowaLinia(frame)
return "\n";
end;
function p.Nowiki(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local PobierzParametr=parametry_modul.PobierzParametr(args);
local tekst=PobierzParametr("tekst") or PobierzParametr(1);
local sprawdz_modul=require("Module:Sprawdź");
tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},}
tekst=mw.ustring.gsub(tekst,"([&<>={}|!%+%-%*;:#\"\'%[%]/\\])",function(znak)
return "&#"..mw.ustring.byte(znak)..";";
end);
return tekst;
end;
function p.FunkcjaLua(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local modul=require("Module:"..(args[1] or args["moduł"]));
if(modul)then
if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then
local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,})
return modul[args[2] or args["nazwa"] or args["funkcja"]](args2);
end;
end;
end;
p["RozwińSzablonWzględemPodanychParametrów"] = function (frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame)
local PobierzParametr=parametry_modul.PobierzParametr(args);
local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or "Nazwa strony";
local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template";
local title=mw.title.makeTitle(przestrzen,nazwa);
local text=title and title:getContent() or nil;
if(not text)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Strona nie istnieje lub nie ma zawartości."}};
end;
text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
local bezkluczy={
["Nazwa strony"]=true,
["Nazwa"]=true,
["Miano przestrzeni nazw"]=true,
["Przestrzeń"]=true,
["wyspecjalizowana"]=true,
["nie rozwiń"]=true,
};
local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy);
local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab};
text=parametry_modul.CzyTak(frame.args["nie rozwiń"]) and text or frame2:preprocess(text);
return text;
end;
p["LiczbaBajtówCiąguDoNormy"] = function(frame)
local str=frame.args[1] or frame.args["ciąg"];
local ile=tonumber(frame.args[2] or frame.args["norma"]);
if(not ile)then return #str;end;
if(#str<=ile)then
return #str;
end;
return nil;
end;
p["LiczbaStronJakoPozycjeDanejKategorii"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria";
local kat={
["subcats"]=true,
["files"]=true,
["pages"]=true,
}
local typ=args["typ"];
typ=(typ and kat[args["typ"]]) and args["typ"] or "all";
local nazwy_modul=require("Module:Nazwy");
kategoria=nazwy_modul["NAZWASTRONY"](kategoria);
return mw.site.stats.pagesInCategory(kategoria,typ);
end;
p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"] = 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[-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
return tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony;
end;
end;
end;
---
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local adres_wzgledny=PobierzParametr(1) or PobierzParametr("względny");
if(not mw.ustring.match(adres_wzgledny,"/"))then return adres_wzgledny;end;
local adres_biezacy=PobierzParametr(2) or PobierzParametr("bieżący");
local adres;
local dwukropek;
if(mw.ustring.match(adres_wzgledny,"^[%s_]*/"))then
if(adres_biezacy)then
adres_biezacy,dwukropek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:","");
adres=adres_biezacy..adres_wzgledny;
else
return nil;
end;
else
if((mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*%.[%s_]*/")))then
if(adres_biezacy)then
adres_biezacy,dwukrowek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:","");
adres=adres_biezacy.."/"..adres_wzgledny;
else
return nil;
end;
else
adres_wzgledny,dwukropek=mw.ustring.gsub(adres_wzgledny,"^[%s_]*:","");
adres=adres_wzgledny;
end;
end;
if(adres~="")then
while((mw.ustring.match(adres,"/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*/")))do
adres=mw.ustring.gsub(adres,"/[%s_]*/","/");
adres=mw.ustring.gsub(adres,"/[%s_]*%.[%s_]*/","/");
adres=mw.ustring.gsub(adres,"/+","/");
adres=mw.ustring.gsub(adres,"^/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/");
adres=mw.ustring.gsub(adres,"^[^/]*/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1);
adres=mw.ustring.gsub(adres,"/([^/]*)/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1);
end;
adres=mw.ustring.gsub(adres,"[%s_]*/[%s_]*","/");
adres=mw.ustring.gsub(adres,"^[%s_]*/+","");
adres=mw.ustring.gsub(adres,"[%s_]*/+","/");
adres=mw.ustring.gsub(adres,"/+[%s_]*$","");
adres=mw.ustring.gsub(adres,"^[%s_]*","");
adres=mw.ustring.gsub(adres,"[%s_]*$","");
adres=mw.ustring.gsub(adres,"[%s_]+"," ");
end;
local wynik=(((dwukropek)and(dwukropek>0)) and ":" or "")..adres;
-----
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];
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.adres_strony=wynik;
end;
-----
return wynik;
end;
function p.PrzekierowanieDoStrony(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_modulu=PobierzParametr(1);
local html_modul=require("Module:Html");
local pudelko_modul=require("Module:Pudełko");
nazwa_modulu=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_modulu);
local czy_nazwa_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_modulu);
if(czy_nazwa_niepoprawna)then
mw.log("Niepoprawna nazwa modulu strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
return;
end;
local title=mw.title.makeTitle('',nazwa_modulu);
if(title)then
local strona=title.redirectTarget;
if(not strona)then return;end;
return html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](strona.fullText);
else
mw.log("Nieprawidłowy format nazwy modułu przy uzykiwaniu, czy strona jest odnośnikiem do innej strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
return;
end;
end;
function p.UsuwanieKomentarzowe(tekst,__FUNKCJA_USUWANIA)
local tekst=mw.ustring.gsub(tekst,"(<!%-%-.-%-%->)",__FUNKCJA_USUWANIA or "");
return tekst;
end;
function p.UsuwanieZnakoweKontrolneNiewidzialne(tekst,__FUKCJA_USUWANIA)
local tekst=mw.ustring.gsub(tekst,"([^%C\n\t ])",__FUKCJA_USUWANIA or "");
return tekst;
end;
p["Forma wyrażenia po liczbie"] = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_table_frame=parametry_modul.TypeTable(frame);
local args=czy_table_frame and (frame.args or frame) or nil;
local argument_funkcji_modulu_1=czy_table_frame and (args[1] or "0") or (frame or "0");
local argument_funkcji_modulu_2=czy_table_frame and (args[2] or "zbiorów") or "zbiorów";
local argument_funkcji_modulu_3=czy_table_frame and (args[3] or "zbiór") or "zbiór";
local argument_funkcji_modulu_4=czy_table_frame and (args[4] or "zbiory") or "zbiory";
local bez_liczby=parametry_modul.CzyTak(args["bez liczby"]);
local specjalne_modul=require("Module:Specjalne");
local liczba_number=specjalne_modul["WydzielLiczbę"](argument_funkcji_modulu_1);
if(not liczba_number)then return "(błąd)";end;
local liczba_number=math.abs(liczba_number);
if(liczba_number==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;end;
if(liczba_number==1)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;end;
if(liczba_number<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end;
if(liczba_number<20)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end;
local reszta=math.fmod(liczba_number,20);
if(reszta==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end;
if(reszta==1)then
if(liczba_number<20)then
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;
else
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2
end;
end;
if(reszta<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end;
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;
end;
return p;
lnuw3wekx927pi3kr29bwbwbs6p7fw6
542273
542272
2026-05-09T08:47:29Z
Persino
2851
542273
Scribunto
text/plain
local p={};
p["Pierwszy niepusty"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local i=1;
local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"](args,"test");
local licznik=1;
while true do
local test=args["test"..i];
local _i=args[i];
local zmienna=test or _i;
local czy_tak=parametry_modul.CzyTak(zmienna);
if(czy_tak)then
return (_i)and _i or "{{{"..i.."}}}";
end;
if(licznik>=liczba_elementow_w_tablicy_args)then return;end;
if(zmienna)then licznik=licznik+1;end;
i=i+1;
end;
end;
function p.NowikiParametr(frame)
local parametr=frame.args[1];
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
parametr=mw.ustring.gsub(parametr,"(.)",function(s)
return techniczne_dane_modul.tablica_szablonowa[s] or techniczne_dane_modul.tablica_linki[s] or techniczne_dane_modul.tablica_tagowa[s];
end);
return parametr;
end;
function p.EncodeParametr(frame)
local parametr=frame.args[1];
local szablonowe_dane_modul=require("Module:Szablonowe/dane");
parametr=mw.ustring.gsub(parametr,"(\")([^\"]+)(\")",function(a,str,b)
return a..mw.text.encode(str)..b;
end)
parametr=mw.ustring.gsub(parametr,"<(/?)([^<>]+)>",function(znak,str)
local znacznik=mw.ustring.match(str,"^(%a+)$") or mw.ustring.match(str,"^(%a+)%s+");
if(znacznik)then
znacznik=mw.getContentLanguage():lc(znacznik);
local czy_znacznik=szablonowe_dane_modul.tablica_html_mechanizmu_mediawiki[znacznik];
if(not czy_znacznik)then
return "&lt;"..znak..mw.text.encode(str).."&gt;";
end;
end;
end);
parametr=mw.text.decode(parametr);
parametr=mw.text.encode(parametr);
return parametr;
end;
p["PełnaNazwaOpisuModułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa");
local komunikat = mw.message.new('Scribunto-doc-page-name', '$1');
local zawartosc_komunikatu;
if(komunikat:exists())then
zawartosc_komunikatu=komunikat:plain();
zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu);
else
zawartosc_komunikatu="Module:$1/opis";
end;
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_wedlug_strony_komunikatu=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu);
local pelna_nazwa_strony_podanej_lub_aktualnej=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"]();
local wzor_pelnej_nazwy_strony=mw.ustring.gsub(pelna_nazwa_strony_wedlug_strony_komunikatu,"%$1",".-");
if(not mw.ustring.match(pelna_nazwa_strony_podanej_lub_aktualnej,"^"..wzor_pelnej_nazwy_strony.."$"))then
local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony_podanej_lub_aktualnej);
local przetworzona_nazwa_strony=p["TekstBezOdwołańDoParametrówWeWzorze"](nazwa_strony);
local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony)
local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu);
return pelna_strona_opisu;
else
return pelna_nazwa_strony_podanej_lub_aktualnej;
end;
end;
p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local wiki_modul=require("Module:Wiki");
local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
local nazwy_modul=require("Module:Nazwy");
local uchwyt_przestrzeni_nazw;
if(czy_biezace_wiki)then
uchwyt_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,uchwyt="tak",};
else
uchwyt_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_lub_jego_identyfikator,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,uchwyt="tak",};
end;
if(uchwyt_przestrzeni_nazw)then
return "tak";
else
return;
end;
end;
p["WzórDanejPrzestrzeniNazw"] = function (frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end )
wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
wzor="[%s_]*"..wzor.."[%s_]*";
return wzor;
end;
p["WzórNazwyStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local strona=PobierzParametr(1) or PobierzParametr("nazwa");
local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1");
wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
wzor="[%s_]*"..wzor.."[%s_]*";
return wzor;
end;
p["WzórPełnejNazwyStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local strona=PobierzParametr(1) or PobierzParametr("nazwa");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_strony=nazwy_modul["NAZWASTRONY"](strona);
if(nazwa_przestrzeni~="")then
nazwa_przestrzeni=p["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni);
end;
nazwa_strony=p["WzórNazwyStrony"](nazwa_strony);
return ((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_strony;
end;
p["TekstBezOdwołańDoParametrówWeWzorze"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"%%%%","%%%%%%");
tekst=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1");
return tekst;
end;
p["TekstBezOdwołańDoPodstawieńElementówWFunkcjiFormat"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"%%(%a+)","%%%%%1");
return tekst;
end;
p["PrzekształćWzórDoCzystegoTekstu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
tekst=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
return tekst;
end;
function p.CzyStronaIstniejeJejParametry(nazwa_strony_lub_uchwyt_strony,czy_zawartosc)
local uchwyt_strony;
local parametry_modul=require("Module:Parametry");
local czy_string=parametry_modul.TypeString(nazwa_strony_lub_uchwyt_strony);
local TempFunc=function(uchwyt_strony)
if(czy_zawartosc)then
return nil,nil,false;
else
return false;
end;
end;
if(czy_string)then
uchwyt_strony = mw.title.makeTitle('',nazwa_strony_lub_uchwyt_strony);
if(not uchwyt_strony)then return TempFunc();end;
else
uchwyt_strony=nazwa_strony_lub_uchwyt_strony;
if(not uchwyt_strony)then return TempFunc();end;
end;
local id=uchwyt_strony.namespace;
if((id==-1)or(id==-2))then
local czy_istnieje=uchwyt_strony and uchwyt_strony.exists or nil;
if(not czy_zawartosc)then
return czy_istnieje;
else
return uchwyt_strony,nil,czy_istnieje;
end;
else
local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
if(czy_zawartosc)then
if(not tekst_artykulu)then
return uchwyt_strony,nil,false;
end;
return uchwyt_strony,tekst_artykulu,true;
end;
if(not tekst_artykulu)then
return false;
end;
return true;
end;
end;
function p.PoliczZbiory(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local liczba_istniejacych_zbiorow=0;
local tabela_uchwytow_stron={};
for _,nazwa_strony in ipairs(args) do
local uchwyt_strony,tekst_artykulu,czy_istnieje = p.CzyStronaIstniejeJejParametry(nazwa_strony,true);
tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,};
if(czy_istnieje)then
liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1;
end;
end;
return liczba_istniejacych_zbiorow,tabela_uchwytow_stron;
end;
function p.TransformacjaWzoru(ciag)
return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1");
end;
p["WyświetlajKodySpecjalne"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
local html_modul=require("Module:Html");
local i=html_modul.KodHTMLZnaku("&");
local hash=html_modul.KodHTMLZnaku("#");
local sr=html_modul.KodHTMLZnaku(";");
text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr);
text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr);
return text;
end;
function p.Wikikod(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
local nazwa_modulu=((parametry_modul["CzyTakCiąg"](przestrzen)) and (przestrzen..":") or "")..(nazwa or "Przykłowa strona");
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local szablonowe_modul=require("Module:Szablonowe");
local tab_komentarze={};
local licznik_komentarze=1;
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,nazwa_modulu,nil,false,nil,true,nil,nil,nil,nil,function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nie ma takiej strony lub artykulu."}};
end;
tekst=p["TekstBezOdwołańDoParametrówWeWzorze"](tekst);
local html_modul=require("Module:Html");
tekst=mw.ustring.gsub(tekst,"&(%a+);","&%1;");
tekst=mw.ustring.gsub(tekst,"&#(%d+);","&#%1;");
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
local tab_szablonowa=techniczne_dane_modul.tablica_szablonowa;
local tab_linki=techniczne_dane_modul.tablica_linki;
local tab_tagow=techniczne_dane_modul.tablica_tagowa;
local tabela_wikitabelowa=techniczne_dane_modul.tabela_wikitabelowa;
local tab_zmienne=function(s)
return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s];
end;
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe")
local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
local TekstBezKomentarzy=function(tekst,poczatek)
tekst=mw.ustring.gsub(tekst,(poczatek or "")..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE"),function(kod)
local kod=tonumber(kod);
local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod];
if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then
return "";
end;
return nil;
end);
--tekst=parametry_modul["Odstępy"](tekst);
return tekst;
end;
local UsuwanieModyfikatoroweStron=function(nazwa,tabela_modyfikatorow)
if(not tabela_modyfikatorow)then return nazwa,"";end;
--local nazwa,komentarz=TekstBezKomentarzy(nazwa,"^[%s_]*");
local modyfikatory="";
repeat
local ile_zmieniono=0;
local __modyfikatory=nil;
nazwa=mw.ustring.gsub(nazwa,"^([%s_]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("STARE")..")",function(poczatek,kod)
local kod=tonumber(kod);
local szablon_komentarz=tablica_analizy_obiektow_strony_dany_modul["STARE"][kod];
if(mw.ustring.match(szablon_komentarz,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ")))then
__modyfikatory=poczatek;
return "";
end;
end);
nazwa=mw.ustring.gsub(nazwa,"^(([%s_]*)(#?)([%s_]*)([^%s#:_]+)([%s_]*:))",function(calosc,a,b,c,d,e)
d=b..TekstBezKomentarzy(d)..":";
if(tabela_modyfikatorow[d])then
ile_zmieniono=ile_zmieniono+1;
modyfikatory=modyfikatory..(__modyfikatory or "")..calosc;
return "";
end;
return nil;
end);
if(ile_zmieniono==0)then
nazwa=(__modyfikatory or "")..nazwa;
end;
until (ile_zmieniono==0);
return nazwa,modyfikatory;
end;
local ZamieniajZnakiNaMikroSzablony=function(szablon,__funkcja)
szablon=mw.ustring.gsub(szablon,"(.)",function(znak)
local odpowied;
if(__funkcja)then
odpowied=__funkcja(znak);
else
odpowied=tab_linki[znak] or tab_szablonowa[znak];
end;
if(odpowied)then return odpowied;end;
return znak;
end);
return szablon;
end;
local CzyBezDwukropka=function(dwukropki)
return (not mw.ustring.match(dwukropki,":") and "tak" or "");
end;
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local szablon_old=szablon;
szablon=TekstBezKomentarzy(szablon);
local pseudoszablon,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
if((pseudoszablon)and(((tabela_modyfikatorow)and((szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))
or(tabela_modyfikatorow["#invoke:"])
or(tabela_modyfikatorow["int:"]))
and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:")))
or((not tabela_modyfikatorow)and(not mw.ustring.match(pseudoszablon,"^[%s_]*#?[%s_]*a+[%s_]*:")))
))then
local UstawianieLinkowe=function(szablon,ktore)
local SzablonStrona=function(szablon)
local strona=TekstBezKomentarzy(szablon);
strona=parametry_modul["Odstępy"](strona);
local nazwa,modyfikatory=UsuwanieModyfikatoroweStron(szablon,tabela_modyfikatorow);
strona=mw.ustring.gsub(strona,"=","{{=}}");
nazwa=mw.ustring.gsub(nazwa,"=","{{=}}");
return "{{s|oryginalna=tak|analiza=tak|"..strona
.."|nazwa="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..nazwa..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)
.."|modyfikatory="..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)..modyfikatory..szablonowe_modul.NormaKoduKodowaniaTekstu("OGRANICZNIK",1)
..(ktore and "|" or "}}");
end;
if(ktore)then
szablon=mw.ustring.gsub(szablon,"=","{{=}}");
szablon,ile=mw.ustring.gsub(szablon,"^{{([^|]-)|",function(szablon)
return SzablonStrona(szablon);
end);
else
szablon=mw.ustring.gsub(szablon,"^{{([^|]-)}}",function(szablon)
return SzablonStrona(szablon);
end);
end;
return szablon;
end;
if(mw.ustring.match(szablon_old,"|"))then
if(mw.ustring.match(szablon,"^{{[^|]*"..szablonowe_modul.NormaWzoruKodowaniaTekstu().."[^|]*|"))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
else
return UstawianieLinkowe(szablon_old,true);
end;
else
if(mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
end;
if(pseudoszablon)then
if(((not tabela_modyfikatorow)or((not tabela_modyfikatorow["int:"])and(not tabela_modyfikatorow["#invoke:"])))and(tab_zmienne(pseudoszablon)))then
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
else
return UstawianieLinkowe(szablon_old,false);
end;
else
return UstawianieLinkowe(szablon_old,false);
end;
end;
else
szablon_old=mw.ustring.gsub(szablon_old,"(.)",tab_szablonowa);
return szablon_old;
end;
elseif(obiekt=="LINKW")then
local __szablon=TekstBezKomentarzy(szablon);
local __dwukropki,__strona=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)%]%]$");
if(__strona)then
if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)%]%]$");
return "{{l|"..strona.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}"
end;
else
local __dwukropki,__strona,__nazwa=mw.ustring.match(__szablon,"^%[%[([%s_:]*)([^%[%]%|]+)|(.*)%]%]$");
if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[%[([^%[%]%|]+)|(.*)%]%]$");
return "{{l|"..strona.."|"..nazwa.."|s="..__strona.."|bd="..CzyBezDwukropka(__dwukropki).."}}";
end;
end;
elseif(obiekt=="LINKZ")then
local __szablon=TekstBezKomentarzy(szablon);
local __strona=mw.ustring.match(__szablon,"^%[%s*(%S+)%s*%]$");
if(__strona)then
if(mw.ustring.match(__szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s*)%]$");
return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}";
end;
else
local __strona,__nazwa=mw.ustring.match(__szablon,"^%[(%s*%S+)(%s+.-)%]$");
if(mw.ustring.match(__strona,szablonowe_modul.NormaWzoruKodowaniaTekstu()))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon);
return szablon;
else
local strona,nazwa=mw.ustring.match(szablon,"^%[(%s*%S+)(%s+.-)%]$");
return "{{z|"..strona.."|"..nazwa.."|s="..__strona.."}}";
end;
end;
elseif(obiekt=="ZMIENNA")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_szablonowa[znak];
return odpowied;
end);
return szablon;
elseif((obiekt=="NOWIKI")
or(obiekt=="PRE")
or(obiekt=="MATH")
or(obiekt=="ŹRÓDŁO")
or(obiekt=="GALERIA")
or(obiekt=="MAPAOBRAZU")
or(obiekt=="PUDEŁKOWEJŚCIA")
)then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_linki[znak] or tab_szablonowa[znak] or tab_tagow[znak];
return odpowied;
end);
return szablon;
elseif(obiekt=="QUIZ")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_szablonowa[znak] or tab_tagow[znak];
return odpowied;
end);
return szablon;
elseif((obiekt=="ZNACZNIK")or(obiekt=="INCLUDE"))then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=(znak~="\"")and tab_tagow[znak] or nil;
return odpowied;
end);
return szablon;
elseif(obiekt=="ATRYBUTY")then
szablon=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaEncodeWikiTekstu("(UCIECZKI)"),function(obiekt,kod)
kod=tonumber(kod);
local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
return szablon;
end);
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tab_tagow[znak] or nil;
return odpowied;
end);
return szablon;
elseif(obiekt=="WIKITABELA")then
szablon=ZamieniajZnakiNaMikroSzablony(szablon,function(znak)
local odpowied=tabela_wikitabelowa[znak];
return odpowied;
end);
return szablon;
elseif(obiekt=="INNEPRE")then
--szablon=mw.ustring.gsub(szablon,"^[^%S\n]","&nbsp;");
return szablon;
else
return szablon;
end;
end);
tekst=frame:getParent():preprocess(tekst);
tekst=mw.ustring.gsub(tekst,szablonowe_modul.NormaWzoruKodowaniaTekstu("KOMENTARZ"),function(kod)
kod=tonumber(kod);
local komentarz=tab_komentarze[kod];
komentarz=mw.ustring.gsub(komentarz,"^<!%-%-(.-)%-%->$",function(zawartosc)
return "<!--"..zawartosc.."-->";
end);
return komentarz;
end);
return tekst;
end;
p["WikikodStrony"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
if(not parametry_modul.CzyTak(nazwa))then return;end;
local title=mw.title.makeTitle(przestrzen,nazwa);
local text=title and title:getContent() or false;
if(not text)then return;end;
text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
return text;
end;
function p.LuaSubst(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local strona=args[1] or args["strona"];
if(not strona)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}};
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}};
end;
local inkludowany=parametry_modul.CzyTak(args["inkludowana"]);
if(inkludowany)then
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
else
local dokumentacja=parametry_modul.CzyTak(args["dokumentacja"]);
if(dokumentacja)then
tekst=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","%1");
tekst=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","");
end;
end;
return tekst;
end;
p["LuaSurowySzablonSubst"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local strona=args["strona"];
if(not strona)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Nazwa strony jest niepodana."}};
end;
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local tekst=stronicowyparser_tekst_modul.PobierzSpecjalniePrzygotowanyPreWikikodStrony(nil,strona,nil,false,nil,true,true);
if(not tekst)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Niepoprawna nazwa strony lub nie istnieje."}};
end;
---
---
local tablica_analizy_obiektow_strony_dany_modul={};
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_dane_modul=mw.loadData("Module:Techniczne/dane");
local tekst=szablonowe_modul.KodowanieSzablonowegoTekstuZObiektamiWikikodu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,nil,nil,nil,nil,nil,nil,
function(tekst_artykulu,tab_element)
return nil,true,nil,true;
end,
function(nazwa)
return true;
end);
local specjalne_modul=require("Module:Specjalne");
local tab_modyfikatory={["#if:"]=true,["#ifeq:"]=true,["#ifexist:"]=true,["#ifexpr:"]=true,};
local tab_mediawiki=function(s)
return techniczne_dane_modul.nazwy_szablony_systemowe[s] or techniczne_dane_modul.nazwy_szablony_zdefiniowane[s];
end;
local tabela_zmiennych={["site"]=true;};
local tablica_danych_parametrow_szablonu_strony={};
local function UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon)
local ile=0;
local szablon=mw.ustring.gsub(szablon,"({{{.+}}})",function(zmienna)
local numerowana=mw.ustring.match(zmienna,"^{{{%s*(%d+)%s*|");
if(numerowana)then
local ile2=0;
zmienna=mw.ustring.gsub(zmienna,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
ile=ile+1;
ile2=ile2+1;
return a..c;
end;
end);
return (ile2>0)and zmienna or nil;
end;
end);
return szablon,ile;
end;
local function UsuwaniePseudoSzablonowe(szablon)
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(tab_mediawiki(nazwa_szablonu))then
return "";
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
end;
return nil, true;
end);
return szablon;
end;
local function PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if(tabela_modyfikatorow)then
for name,value in pairs(tabela_modyfikatorow)do
if(tab_modyfikatory[name])then
local warunek,dalej=mw.ustring.match(szablon,"^{{([^{}|]+)(.-)$");
if(warunek)then
local iterator=szablonowe_modul.IteratorSzablonowyZakodowanegoTekstu(nil,dalej,nil,tablica_analizy_obiektow_strony_dany_modul);
local czy_usunac_kreski_pionowe=false;
for szablon_dalej,obiekt_dalej,kod_dalej in iterator do
if(obiekt_dalej=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon_dalej,tablica_danych_parametrow_szablonu_strony,kod_dalej,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
if((mw.ustring.match(nazwa_szablonu,"^Infobox .*$"))or(mw.ustring.match(nazwa_szablonu,"^Link%u")))then
return true;
end;
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then
czy_usunac_kreski_pionowe=true;
break;
end;
elseif(obiekt_dalej=="LINKW")then
local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon_dalej);
if(wynik)then
czy_usunac_kreski_pionowe=true;
break;
end;
end;
end;
if(czy_usunac_kreski_pionowe)then
warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
return szablon;
end;
end);
return "{{"..warunek..dalej;
else
local warunek=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,warunek,nil,tablica_analizy_obiektow_strony_dany_modul);
return "{{"..warunek..dalej;
end;
end;
end;
end;
end;
end;
local function PlikowePrzetwarzanie(szablon,obiekt,kod)
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
end;
return nil,true;
end);
return szablon;
end;
local function PrzetwarzanieDivowe(szablon,obiekt,kod)
local szablon,ile=UsuwanieZnacznikoweZmiennychNumerowanychElementowychAlternatywnych(szablon);
szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
elseif(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
end;
return szablon;
end;
return nil,true;
end);
return szablon;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
return wynik;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
return nil,true;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
end;
end;
return nil,true;
end);
return szablon;
end;
local function PrzetwarzanieSzablonowe(szablon,obiekt,kod)
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
local infobox=mw.ustring.match(nazwa_szablonu,"^Infobox .*$");
local link=mw.ustring.match(nazwa_szablonu,"^Link%u");
if((infobox)or(link))then
if((link)and(not infobox))then
szablon="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>";
end;
local szablon=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod ,poziom_iteracji)
if(obiekt=="SZABLON")then
local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,"",
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return nil;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
if(wynik)then return wynik;end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
if(wynik)then return wynik;end;
return nil,true;
elseif(obiekt=="ZMIENNA")then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(((infobox)and(b==""))or((link)and((tonumber(a1))or(tabela_zmiennych[a1]))))then
return a..c;
end;
end);
return szablon;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
end;
return nil,true;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
szablon=PrzetwarzanieDivowe(szablon,obiekt,kod);
return szablon;
end;
return nil,true;
end;
return szablon;
end);
return szablon;
end;
end,
function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
local wynik=PrzetwarzanieParserowe(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod);
if(wynik)then return wynik;end;
end,nil,nil,nil,nil,nil,nil,nil,nil,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
local wynik=((not mw.ustring.match(szablon,"^{{[^{}|]+}}$"))and(not mw.ustring.match(szablon,"^{{[^{}|]+|[^{}]*}}$")));
return wynik;
end,
function(szablon,obiekt,kod,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa)
return false;
end);
return wynik;
end;
tekst=szablonowe_modul.KompletowanieSzablonoweZakodowanegoTekstu(nil,tekst,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod,poziom_iteracji)
if(obiekt=="SZABLON")then
szablon=PrzetwarzanieSzablonowe(szablon,obiekt,kod);
if(szablon)then return szablon;end;
elseif(obiekt=="ZMIENNA")then
local numerowana=mw.ustring.match(szablon,"^{{{%s*(%d+)%s*|");
if(not numerowana)then
szablon=UsuwaniePseudoSzablonowe(szablon);
szablon=mw.ustring.gsub(szablon,"^({{{%s*([^{}]-)%s*)|%s*([^%[%]]-)%s*(}}})$",function(a,a1,b,c)
if(b=="")then
return a..c;
end;
end);
return szablon;
end;
elseif(obiekt=="ZNACZNIK")then
local nazwa,zawartosc,tab=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
if(nazwa=="div")then
szablon=PrzetwarzanieDivowe(szablon,obiekt,kod);
return szablon;
end;
elseif(obiekt=="LINKW")then
if(specjalne_modul["CzyPlik"](szablon))then
szablon=PlikowePrzetwarzanie(szablon,obiekt,kod);
return szablon;
else
local wynik=specjalne_modul["CzyLinkWewnętrzny"](szablon);
if(wynik)then
local spanramka="<span style{{=}}\"position:relative;z-index:100;\">"..szablon.."</span>";
return spanramka;
end;
end;
end;
return szablon;
end);
return tekst;
end;
function p.NowaLinia(frame)
return "\n";
end;
function p.Nowiki(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local PobierzParametr=parametry_modul.PobierzParametr(args);
local tekst=PobierzParametr("tekst") or PobierzParametr(1);
local sprawdz_modul=require("Module:Sprawdź");
tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},}
tekst=mw.ustring.gsub(tekst,"([&<>={}|!%+%-%*;:#\"\'%[%]/\\])",function(znak)
return "&#"..mw.ustring.byte(znak)..";";
end);
return tekst;
end;
function p.FunkcjaLua(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local modul=require("Module:"..(args[1] or args["moduł"]));
if(modul)then
if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then
local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,})
return modul[args[2] or args["nazwa"] or args["funkcja"]](args2);
end;
end;
end;
p["RozwińSzablonWzględemPodanychParametrów"] = function (frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame)
local PobierzParametr=parametry_modul.PobierzParametr(args);
local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or "Nazwa strony";
local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template";
local title=mw.title.makeTitle(przestrzen,nazwa);
local text=title and title:getContent() or nil;
if(not text)then
local blad_modul=require("Module:Błąd");
return blad_modul.error{args={tag="span",tekst="Strona nie istnieje lub nie ma zawartości."}};
end;
text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
local bezkluczy={
["Nazwa strony"]=true,
["Nazwa"]=true,
["Miano przestrzeni nazw"]=true,
["Przestrzeń"]=true,
["wyspecjalizowana"]=true,
["nie rozwiń"]=true,
};
local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy);
local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab};
text=parametry_modul.CzyTak(frame.args["nie rozwiń"]) and text or frame2:preprocess(text);
return text;
end;
p["LiczbaBajtówCiąguDoNormy"] = function(frame)
local str=frame.args[1] or frame.args["ciąg"];
local ile=tonumber(frame.args[2] or frame.args["norma"]);
if(not ile)then return #str;end;
if(#str<=ile)then
return #str;
end;
return nil;
end;
p["LiczbaStronJakoPozycjeDanejKategorii"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria";
local kat={
["subcats"]=true,
["files"]=true,
["pages"]=true,
}
local typ=args["typ"];
typ=(typ and kat[args["typ"]]) and args["typ"] or "all";
local nazwy_modul=require("Module:Nazwy");
kategoria=nazwy_modul["NAZWASTRONY"](kategoria);
return mw.site.stats.pagesInCategory(kategoria,typ);
end;
p["PrzeszkałćAdresWzględnyStronyNaBezwzględny"] = 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[-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
return tablica_danych_parametrow_szablonu_strony_numer_kod.adres_strony;
end;
end;
end;
---
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local adres_wzgledny=PobierzParametr(1) or PobierzParametr("względny");
if(not mw.ustring.match(adres_wzgledny,"/"))then return adres_wzgledny;end;
local adres_biezacy=PobierzParametr(2) or PobierzParametr("bieżący");
local adres;
local dwukropek;
if(mw.ustring.match(adres_wzgledny,"^[%s_]*/"))then
if(adres_biezacy)then
adres_biezacy,dwukropek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:","");
adres=adres_biezacy..adres_wzgledny;
else
return nil;
end;
else
if((mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres_wzgledny,"^[%s_]*%.[%s_]*%.[%s_]*/")))then
if(adres_biezacy)then
adres_biezacy,dwukrowek=mw.ustring.gsub(adres_biezacy,"^[%s_]*:","");
adres=adres_biezacy.."/"..adres_wzgledny;
else
return nil;
end;
else
adres_wzgledny,dwukropek=mw.ustring.gsub(adres_wzgledny,"^[%s_]*:","");
adres=adres_wzgledny;
end;
end;
if(adres~="")then
while((mw.ustring.match(adres,"/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*%.[%s_]*/"))or(mw.ustring.match(adres,"/[%s_]*/")))do
adres=mw.ustring.gsub(adres,"/[%s_]*/","/");
adres=mw.ustring.gsub(adres,"/[%s_]*%.[%s_]*/","/");
adres=mw.ustring.gsub(adres,"/+","/");
adres=mw.ustring.gsub(adres,"^/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/");
adres=mw.ustring.gsub(adres,"^[^/]*/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1);
adres=mw.ustring.gsub(adres,"/([^/]*)/[%.%s_]*[%s_]*%.[%s_]*%.[%s_]*/","/",1);
end;
adres=mw.ustring.gsub(adres,"[%s_]*/[%s_]*","/");
adres=mw.ustring.gsub(adres,"^[%s_]*/+","");
adres=mw.ustring.gsub(adres,"[%s_]*/+","/");
adres=mw.ustring.gsub(adres,"/+[%s_]*$","");
adres=mw.ustring.gsub(adres,"^[%s_]*","");
adres=mw.ustring.gsub(adres,"[%s_]*$","");
adres=mw.ustring.gsub(adres,"[%s_]+"," ");
end;
local wynik=(((dwukropek)and(dwukropek>0)) and ":" or "")..adres;
-----
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];
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.adres_strony=wynik;
end;
-----
return wynik;
end;
function p.PrzekierowanieDoStrony(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa_modulu=PobierzParametr(1);
local html_modul=require("Module:Html");
local pudelko_modul=require("Module:Pudełko");
nazwa_modulu=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_modulu);
local czy_nazwa_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_modulu);
if(czy_nazwa_niepoprawna)then
mw.log("Niepoprawna nazwa modulu strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
return;
end;
local title=mw.title.makeTitle('',nazwa_modulu);
if(title)then
local strona=title.redirectTarget;
if(not strona)then return;end;
return html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](strona.fullText);
else
mw.log("Nieprawidłowy format nazwy modułu przy uzykiwaniu, czy strona jest odnośnikiem do innej strony: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
return;
end;
end;
function p.UsuwanieKomentarzowe(tekst,__FUNKCJA_USUWANIA)
local tekst=mw.ustring.gsub(tekst,"(<!%-%-.-%-%->)",__FUNKCJA_USUWANIA or "");
return tekst;
end;
function p.UsuwanieZnakoweKontrolneNiewidzialne(tekst,__FUKCJA_USUWANIA)
local tekst=mw.ustring.gsub(tekst,"([^%C\n\t ])",__FUKCJA_USUWANIA or "");
return tekst;
end;
p["Forma wyrażenia po liczbie"] = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_table_frame=parametry_modul.TypeTable(frame);
local args=czy_table_frame and (frame.args or frame) or nil;
local argument_funkcji_modulu_1=czy_table_frame and (args[1] or "0") or (frame or "0");
local argument_funkcji_modulu_2=czy_table_frame and (args[2] or "zbiorów") or "zbiorów";
local argument_funkcji_modulu_3=czy_table_frame and (args[3] or "zbiór") or "zbiór";
local argument_funkcji_modulu_4=czy_table_frame and (args[4] or "zbiory") or "zbiory";
local bez_liczby=parametry_modul.CzyTak(args["bez liczby"]);
local specjalne_modul=require("Module:Specjalne");
local liczba_number=specjalne_modul["WydzielLiczbę"](argument_funkcji_modulu_1);
if(not liczba_number)then return "(błąd)";end;
local liczba_number=math.abs(liczba_number);
if(liczba_number==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;end;
if(liczba_number==1)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;end;
if(liczba_number<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end;
if(liczba_number<20)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end;
local reszta=math.fmod(liczba_number,20);
if(reszta==0)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." ")).." "..argument_funkcji_modulu_2;end;
if(reszta==1)then
if(liczba_number<20)then
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_3;
else
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2
end;
end;
if(reszta<5)then return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_4;end;
return (bez_liczby and "" or (argument_funkcji_modulu_1.." "))..argument_funkcji_modulu_2;
end;
return p;
mn6cn70a4oy1mg3r7f956njqq2f1tyf
Moduł:StronicowyParser/Tekst
828
58886
542274
529903
2026-05-09T08:50:12Z
Persino
2851
542274
Scribunto
text/plain
local p={}
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modulu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modulu);
if(nazwa_modulu_opisu~=nazwa_modulu)then
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
else
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nil,not inkludowana,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modulu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
local tekst_artykulu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
if(not tekst_artykulu_caly)then return;end;
local szablonowe_modul=require("Module:Szablonowe");
local ramka_modul=require("Module:Ramka");
local tablica_obiektow_strony_dany_modul=((dokumentacja)and {} or nil);
tekst_artykulu_caly=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,nil,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local nazwa_szablonu,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
if(szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))then
return ramka_modul.InstrukcjeWarunkowe(szablon);
end;
end;
end);
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)))then
tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul);
end;
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,false) or tekst_artykulu_caly;
return tekst_artykulu_caly;
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,szablony_magiczne,inkludowana and true or dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
if(not tekst_artykulu_caly)then return;end;
if(inkludowana)then
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,nil,dokumentacja,true) or tekst_artykulu_caly;
return tekst_artykulu_caly;
end;
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local ramka_modul=require("Module:Ramka");
local tablica_obiektow_strony_dany_modul=((dokumentacja)and {} or nil);
local opis=nazwa_modulu.."/opis";
local przekierowanie_opis=nil;
local techniczne_modul=require("Module:Techniczne");
local liczba_istniejacych_zbiorow,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]=opis,};
if(liczba_istniejacych_zbiorow>0)then
przekierowanie_opis=techniczne_modul.PrzekierowanieDoStrony(opis);
else
opis=nil;
end;
----
local tablica_danych_parametrow_szablonu_strony=__FUNKCJA3 and __FUNKCJA3(nazwa_modulu) or nil;
----
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablonowe_modul=require("Module:Szablonowe");
tekst_artykulu_caly=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,nil,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu,function(tablica_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
----
if(stronicowyparser_obiekty_modul.szablony_dokumentacji[nazwa_szablonu])then
local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tablica_parametrow_szablonu);
if(not czy_nie_brak_parametrow)then
local nazwa_strony_opisu=nazwa_modulu.."/opis";
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or nazwa_strony_opisu,nil,false,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu_caly;
else
local nazwa_strony_opisu=tablica_parametrow_szablonu[1];
local zawartosc=tablica_parametrow_szablonu["zawartość"];
----
local czy_nazwa_strony_opisu=parametry_modul.CzyTak(nazwa_strony_opisu);
local czy_zawartosc=parametry_modul.CzyTak(zawartosc);
if((czy_nazwa_strony_opisu)and(not czy_zawartosc))then
local opis_tak=((opis) and (nazwa_strony_opisu==opis));
local nazwa_strony_opisu_czy_przekierowanie=opis_tak and (przekierowanie_opis or nazwa_strony_opisu) or (techniczne_modul.PrzekierowanieDoStrony (nazwa_strony_opisu) or nazwa_strony_opisu);
if((opis)and((opis_tak)or((przekierowanie_opis)and(nazwa_strony_opisu==przekierowanie_opis))))then opis=nil;end;
----
local szablony_magiczne={};
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony_opisu_czy_przekierowanie,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu;
elseif(czy_zawartosc)then
return zawartosc;
else
local nazwa_strony_opisu=nazwa_modulu.."/opis";
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or nazwa_strony_opisu,nil,false,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu_caly;
end;
end;
else
if(opis)then
local pelna_nazwa_szablonu=szablonowe_modul["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu);
if((opis==pelna_nazwa_szablonu)or((przekierowanie_opis)and(przekierowanie_opis==pelna_nazwa_szablonu)))then
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or pelna_nazwa_szablonu,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu;
end;
end;
end;
end,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return ramka_modul.InstrukcjeWarunkowe(szablon);
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu)
if(__FUNKCJA4)then
return __FUNKCJA4(nazwa_szablonu,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
end,
function(nazwa_szablonu,tabela_modyfikatorow)
return __FUNKCJA5 and __FUNKCJA5(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
end);
end;
end,nil,nil,nil,function(tekst_artykulu,nazwa_modulu,tablica_obiektow_strony_dany_modul)
if((not inkludowana)and(opis))then
local szablony_magiczne={};
opis=przekierowanie_opis or opis;
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,opis,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA);
return tekst_artykulu_opisu;
end;
end,nil,nil,nil,__FUNKCJA_PARAMETRY);
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)))then
tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul);
end;
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,false) or tekst_artykulu_caly;
return tekst_artykulu_caly;
end;
end;
end;
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local tablica_obiektow_strony_dany_modul_uzyskany=nil;
local tablica_parametrow_szablonu_strony={};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:techniczne");
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,true,inkludowana,function(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_obiektow_strony_dany_modul,dokumentacja,czy_niezakodowana)
tablica_obiektow_strony_dany_modul=tablica_obiektow_strony_dany_modul or {};
tablica_obiektow_strony_dany_modul_uzyskany=tablica_obiektow_strony_dany_modul;
if(not tekst_rozwiniety_calego_artykulu)then return;end;
local __self=szablonowe_modul:TablicaTransportuSzablonowe();
--if((__self)and(tablica_obiektow_strony_dany_modul)and(not czy_niezakodowana))then
--if(not __self.tablica_obiektow_strony_dany_modul)then __self.tablica_obiektow_strony_dany_modul={};end;
--__self.tablica_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]=tablica_obiektow_strony_dany_modul;
--end;
tekst_rozwiniety_calego_artykulu=tekst_rozwiniety_calego_artykulu and szablonowe_modul[czy_niezakodowana and "RozwijanieNiezakodowanegoSzablonu" or "RozwijanieZakodowanegoSzablonu"](__self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_obiektow_strony_dany_modul,tablica_parametrow_szablonu_strony,
stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu,
stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu,
function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu);
if(czy_nie_brak_parametrow)then return true;end;
end,
function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
if(not mw.ustring.match(pelna_nazwa_szablonu,"/"))then return true;end;
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_szablonu);
if(nazwa_artykulu=="")then
return true;
end;
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu);
if(strona)then
if(not mw.ustring.match(pelna_nazwa_szablonu,"/"))then return true;end;
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if(nazwa_artykulu=="")then
return true;
end;
end;
end,
__FUNKCJA,
__FUNKCJA2,
function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html)
return __FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,false) or nil;
end,__FUNKCJA_PARAMETRY) or nil;
return tekst_rozwiniety_calego_artykulu;
end, function(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)
return nil;
end,function(nazwa_modulu)
return tablica_parametrow_szablonu_strony;
end,stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu,
stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu,
function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html)
return __FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,true) or nil;
end,__FUNKCJA_PARAMETRY);
----
return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
end;
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^[_%s]*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
local parametry_modul=require("Module:Parametry");
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
---
local html_modul=require("Module:Html");
nazwa_strony_bez_kodow_html=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony);
local szablonowe_modul=require("Module:Szablonowe");
local pudelko_modul=require("Module:Pudełko");
local czy_nazwa_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_strony_bez_kodow_html);
if(czy_nazwa_niepoprawna)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nazwa strony niepoprawna"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nazwa strony niepoprawna");
end;
end;
mw.log("Nieprawidłowy format nazwy modułu przy uzyskiwaniu jego zawartości: "..nazwa_strony..".");
return nil;
end;
---
local nazwa_strony_z_kodami_html=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](nazwa_strony);
local czy_istnieje;
local techniczne_modul=require("Module:Techniczne");
uchwyt_strony,tekst_artykulu,czy_istnieje = techniczne_modul.CzyStronaIstniejeJejParametry(nazwa_strony,true);
if(not uchwyt_strony)then
mw.log("Nieprawidłowy format nazwy modułu przy uzyskiwaniu jego uchwytu: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
end;
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"strona nie istnieje"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"strona nie istnieje");
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"zawartość strony nie istnieje"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"zawartość strony nie istnieje");
end;
end;
return nil;
end;
end;
else
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nazwa strony składa się tylko ze znaków odstępu"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nazwa strony składa się tylko ze znaków odstępu");
end;
end;
return nil;
end;
if(not czy_szablon)then
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
-----
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]%s->","");
elseif(parametry_modul.TypeFunction(czy_szablon))then
tekst_artykulu=czy_szablon(tekst_artykulu,czy_noinclude);
end;
----
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"\n[^%S\n]*<!%-%-(.-)%-%->[^%S\n]*\n","\n");
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu=__FUNKCJA_KOMENTARZE
and (__FUNKCJA_KOMENTARZE(tekst_artykulu))
or techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu);
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
local tabela_nazw={};
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=szablony_magiczne["{{ROOTPAGENAME}}"] or nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{NAMESPACE}}"]=szablony_magiczne["{{NAMESPACE}}"] or nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{PAGENAME}}"]=szablony_magiczne["{{PAGENAME}}"] or nazwy_modul["NAZWASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{FULLPAGENAME}}"]=szablony_magiczne["{{FULLPAGENAME}}"] or nazwy_modul["PEŁNANAZWASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{SUBPAGENAME}}"]=szablony_magiczne["{{SUBPAGENAME}}"] or nazwy_modul["NAZWASUBSTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
----
tekst_artykulu=__FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw) or tekst_artykulu;
tekst_artykulu=__FUNKCJA_KONTROLNE and __FUNKCJA_KONTROLNE(tekst_artykulu) or tekst_artykulu;
----
if(not szablon_nie_opis)then
if(not dokumentacja)then
local szablonowe_modul=require("Module:Szablonowe");
tekst_artykulu=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu,nazwa_strony2 or nazwa_strony,nil,nil,nil,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY);
end;
end;
return tekst_artykulu;
end;
return p;
3xfivtuhkt7272nxbie02hdchhsrorb
542275
542274
2026-05-09T08:54:01Z
Persino
2851
542275
Scribunto
text/plain
local p={}
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modulu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modulu);
if(nazwa_modulu_opisu~=nazwa_modulu)then
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
else
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nil,not inkludowana,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
return tekst;
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modulu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
local tekst_artykulu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
if(not tekst_artykulu_caly)then return;end;
local szablonowe_modul=require("Module:Szablonowe");
local ramka_modul=require("Module:Ramka");
local tablica_obiektow_strony_dany_modul=((dokumentacja)and {} or nil);
tekst_artykulu_caly=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,nil,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
local nazwa_szablonu,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
if(szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))then
return ramka_modul.InstrukcjeWarunkowe(szablon);
end;
end;
end);
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)))then
tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul);
end;
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,false) or tekst_artykulu_caly;
return tekst_artykulu_caly;
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu,nil,not inkludowana,szablony_magiczne,inkludowana and true or dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
if(not tekst_artykulu_caly)then return;end;
if(inkludowana)then
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,nil,dokumentacja,true) or tekst_artykulu_caly;
return tekst_artykulu_caly;
end;
local szablonowe_modul=require("Module:Szablonowe");
local parametry_modul=require("Module:Parametry");
local ramka_modul=require("Module:Ramka");
local tablica_obiektow_strony_dany_modul=((dokumentacja)and {} or nil);
local opis=nazwa_modulu.."/opis";
local przekierowanie_opis=nil;
local techniczne_modul=require("Module:Techniczne");
local liczba_istniejacych_zbiorow,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]=opis,};
if(liczba_istniejacych_zbiorow>0)then
przekierowanie_opis=techniczne_modul.PrzekierowanieDoStrony(opis);
else
opis=nil;
end;
----
local tablica_danych_parametrow_szablonu_strony=__FUNKCJA3 and __FUNKCJA3(nazwa_modulu) or nil;
----
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local szablonowe_modul=require("Module:Szablonowe");
tekst_artykulu_caly=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,nil,function(szablon,obiekt,kod)
if(obiekt=="SZABLON")then
return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,nazwa_modulu,function(tablica_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
----
if(stronicowyparser_obiekty_modul.szablony_dokumentacji[nazwa_szablonu])then
local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tablica_parametrow_szablonu);
if(not czy_nie_brak_parametrow)then
local nazwa_strony_opisu=nazwa_modulu.."/opis";
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or nazwa_strony_opisu,nil,false,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu_caly;
else
local nazwa_strony_opisu=tablica_parametrow_szablonu[1];
local zawartosc=tablica_parametrow_szablonu["zawartość"];
----
local czy_nazwa_strony_opisu=parametry_modul.CzyTak(nazwa_strony_opisu);
local czy_zawartosc=parametry_modul.CzyTak(zawartosc);
if((czy_nazwa_strony_opisu)and(not czy_zawartosc))then
local opis_tak=((opis) and (nazwa_strony_opisu==opis));
local nazwa_strony_opisu_czy_przekierowanie=opis_tak and (przekierowanie_opis or nazwa_strony_opisu) or (techniczne_modul.PrzekierowanieDoStrony (nazwa_strony_opisu) or nazwa_strony_opisu);
if((opis)and((opis_tak)or((przekierowanie_opis)and(nazwa_strony_opisu==przekierowanie_opis))))then opis=nil;end;
----
local szablony_magiczne={};
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony_opisu_czy_przekierowanie,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu;
elseif(czy_zawartosc)then
return zawartosc;
else
local nazwa_strony_opisu=nazwa_modulu.."/opis";
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu_caly=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or nazwa_strony_opisu,nil,false,szablony_magiczne,true,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu_caly;
end;
end;
else
if(opis)then
local pelna_nazwa_szablonu=szablonowe_modul["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu);
if((opis==pelna_nazwa_szablonu)or((przekierowanie_opis)and(przekierowanie_opis==pelna_nazwa_szablonu)))then
opis=nil;
local szablony_magiczne={};
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,przekierowanie_opis or pelna_nazwa_szablonu,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
return tekst_artykulu_opisu;
end;
end;
end;
end,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,szablon,obiekt,kod)
return ramka_modul.InstrukcjeWarunkowe(szablon);
end,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,function(nazwa_szablonu)
if(__FUNKCJA4)then
return __FUNKCJA4(nazwa_szablonu,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
end;
end,
function(nazwa_szablonu,tabela_modyfikatorow)
return __FUNKCJA5 and __FUNKCJA5(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nazwa_szablonu;
end);
end;
end,nil,nil,nil,function(tekst_artykulu,nazwa_modulu,tablica_obiektow_strony_dany_modul)
if((not inkludowana)and(opis))then
local szablony_magiczne={};
opis=przekierowanie_opis or opis;
local tekst_artykulu_opisu=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,opis,nil,false,szablony_magiczne,true,false,nazwa_modulu,nil,__FUNKCJA_ANALIZA_SPISOWA);
return tekst_artykulu_opisu;
end;
end,nil,nil,nil,__FUNKCJA_PARAMETRY);
if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)))then
tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul);
end;
tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,false) or tekst_artykulu_caly;
return tekst_artykulu_caly;
end;
end;
end;
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)
local tablica_obiektow_strony_dany_modul_uzyskany=nil;
local tablica_parametrow_szablonu_strony={};
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local szablonowe_modul=require("Module:Szablonowe");
local techniczne_modul=require("Module:techniczne");
local nazwy_modul=require("Module:Nazwy");
local parametry_modul=require("Module:Parametry");
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,true,inkludowana,function(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_obiektow_strony_dany_modul,dokumentacja,czy_niezakodowana)
tablica_obiektow_strony_dany_modul=tablica_obiektow_strony_dany_modul or {};
tablica_obiektow_strony_dany_modul_uzyskany=tablica_obiektow_strony_dany_modul;
if(not tekst_rozwiniety_calego_artykulu)then return;end;
local __self=szablonowe_modul:TablicaTransportuSzablonowe();
--if((__self)and(tablica_obiektow_strony_dany_modul)and(not czy_niezakodowana))then
--if(not __self.tablica_obiektow_strony_dany_modul)then __self.tablica_obiektow_strony_dany_modul={};end;
--__self.tablica_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]=tablica_obiektow_strony_dany_modul;
--end;
tekst_rozwiniety_calego_artykulu=tekst_rozwiniety_calego_artykulu and szablonowe_modul[czy_niezakodowana and "RozwijanieNiezakodowanegoSzablonu" or "RozwijanieZakodowanegoSzablonu"](__self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_obiektow_strony_dany_modul,tablica_parametrow_szablonu_strony,
stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu,
stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu,
function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu);
if(czy_nie_brak_parametrow)then return true;end;
end,
function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
if(not mw.ustring.match(pelna_nazwa_szablonu,"/"))then return true;end;
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_szablonu);
if(nazwa_artykulu=="")then
return true;
end;
local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu);
if(strona)then
if(not mw.ustring.match(pelna_nazwa_szablonu,"/"))then return true;end;
local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if(nazwa_artykulu=="")then
return true;
end;
end;
end,
__FUNKCJA,
__FUNKCJA2,
function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html)
return __FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,false) or nil;
end,__FUNKCJA_PARAMETRY) or nil;
return tekst_rozwiniety_calego_artykulu;
end, function(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)
return nil;
end,function(nazwa_modulu)
return tablica_parametrow_szablonu_strony;
end,stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu,
stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu,
function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html)
return __FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,true) or nil;
end,__FUNKCJA_PARAMETRY);
----
return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
end;
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^[_%s]*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
local parametry_modul=require("Module:Parametry");
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
---
local html_modul=require("Module:Html");
nazwa_strony_bez_kodow_html=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony);
local szablonowe_modul=require("Module:Szablonowe");
local pudelko_modul=require("Module:Pudełko");
local czy_nazwa_niepoprawna=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_strony_bez_kodow_html);
if(czy_nazwa_niepoprawna)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nazwa strony niepoprawna"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nazwa strony niepoprawna");
end;
end;
mw.log("Nieprawidłowy format nazwy modułu przy uzyskiwaniu jego zawartości: "..nazwa_strony..".");
return nil;
end;
---
local nazwa_strony_z_kodami_html=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](nazwa_strony);
local czy_istnieje;
local techniczne_modul=require("Module:Techniczne");
uchwyt_strony,tekst_artykulu,czy_istnieje = techniczne_modul.CzyStronaIstniejeJejParametry(nazwa_strony_z_kodami_html,true);
if(not uchwyt_strony)then
mw.log("Nieprawidłowy format nazwy modułu przy uzyskiwaniu jego uchwytu: "..(parametry_modul["CzyTakCiąg"](nazwa_modulu) and nazwa_modulu or "(nazwa pusta)")..".");
end;
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"strona nie istnieje"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"strona nie istnieje");
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"zawartość strony nie istnieje"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"zawartość strony nie istnieje");
end;
end;
return nil;
end;
end;
else
if(self and self.tabela_listy_danych_analizy_ksiazki)then
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"nazwa strony składa się tylko ze znaków odstępu"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"nazwa strony składa się tylko ze znaków odstępu");
end;
end;
return nil;
end;
if(not czy_szablon)then
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
-----
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"</?%s-[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]%s->","");
elseif(parametry_modul.TypeFunction(czy_szablon))then
tekst_artykulu=czy_szablon(tekst_artykulu,czy_noinclude);
end;
----
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"\n[^%S\n]*<!%-%-(.-)%-%->[^%S\n]*\n","\n");
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu=__FUNKCJA_KOMENTARZE
and (__FUNKCJA_KOMENTARZE(tekst_artykulu))
or techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu);
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
local tabela_nazw={};
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=szablony_magiczne["{{ROOTPAGENAME}}"] or nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{NAMESPACE}}"]=szablony_magiczne["{{NAMESPACE}}"] or nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{PAGENAME}}"]=szablony_magiczne["{{PAGENAME}}"] or nazwy_modul["NAZWASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{FULLPAGENAME}}"]=szablony_magiczne["{{FULLPAGENAME}}"] or nazwy_modul["PEŁNANAZWASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
szablony_magiczne["{{SUBPAGENAME}}"]=szablony_magiczne["{{SUBPAGENAME}}"] or nazwy_modul["NAZWASUBSTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html,tabela_nazw);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
----
tekst_artykulu=__FUNKCJA_ANALIZA_SPISOWA and __FUNKCJA_ANALIZA_SPISOWA(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw) or tekst_artykulu;
tekst_artykulu=__FUNKCJA_KONTROLNE and __FUNKCJA_KONTROLNE(tekst_artykulu) or tekst_artykulu;
----
if(not szablon_nie_opis)then
if(not dokumentacja)then
local szablonowe_modul=require("Module:Szablonowe");
tekst_artykulu=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu,nazwa_strony2 or nazwa_strony,nil,nil,nil,nil,nil,nil,nil,nil,nil,__FUNKCJA_PARAMETRY);
end;
end;
return tekst_artykulu;
end;
return p;
dah2f0pjrmm553ie8o1em7ncs8r9mfl
Wikibooks:Moduły/StronicowyParser/Tekst
4
63524
542249
542194
2026-05-08T16:25:41Z
Persino
2851
542249
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
j519peelazwmuocbvavwpqbtfqiiwyu
542250
542249
2026-05-08T17:08:33Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542250
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość je usuwając z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
q1pzyk7z6nmlkznw0xc6i3rplxgiqhq
542251
542250
2026-05-08T17:10:59Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542251
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ngazsb08w3pednu0k88atdei6lwp4v1
542252
542251
2026-05-08T17:26:26Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542252
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tą funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} -
** {{Code|nazwa_strony2}} -
** {{Code|czy_noinclude}} -
** Zmienna tablicowa: {{Code|szablony_magiczne}} -
** {{Code|dokumentacja}} -
** {{Code|czy_szablon}} -
** {{Code|nazwa_modulu_szablonu_opisu}} -
** {{Code|szablon_nie_opis}} -
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} -
** {{Code|__FUNKCJA_KOMENTARZE}} -
** {{Code|__FUNKCJA_KONTROLNE}} -
** {{Code|__FUNKCJA_PARAMETRY}} -
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6d6gi4eacnlt4dykmrnra7wkrfobc4n
542253
542252
2026-05-08T17:29:54Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542253
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} -
** {{Code|nazwa_strony2}} -
** {{Code|czy_noinclude}} -
** Zmienna tablicowa: {{Code|szablony_magiczne}} -
** {{Code|dokumentacja}} -
** {{Code|czy_szablon}} -
** {{Code|nazwa_modulu_szablonu_opisu}} -
** {{Code|szablon_nie_opis}} -
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} -
** {{Code|__FUNKCJA_KOMENTARZE}} -
** {{Code|__FUNKCJA_KONTROLNE}} -
** {{Code|__FUNKCJA_PARAMETRY}} -
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kc9y8f3siyp5bqzxi2gn3843qe9eyyd
542254
542253
2026-05-08T17:32:28Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542254
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} -
** {{Code|nazwa_strony2}} -
** {{Code|czy_noinclude}} -
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} -
* Inne zmienne
** {{Code|dokumentacja}} -
** {{Code|czy_szablon}} -
** {{Code|nazwa_modulu_szablonu_opisu}} -
** {{Code|szablon_nie_opis}} -
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} -
** {{Code|__FUNKCJA_KOMENTARZE}} -
** {{Code|__FUNKCJA_KONTROLNE}} -
** {{Code|__FUNKCJA_PARAMETRY}} -
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4jokz2rn9moxyjtqpm5unmj5lp2pvoj
542255
542254
2026-05-08T18:23:20Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542255
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Code|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Code|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacjeinne niż z: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej fubkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ccvj16cfvxxp2tsjp6ifg4cb2cqzz1m
542256
542255
2026-05-08T18:24:54Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542256
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacjeinne niż z: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej fubkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
54m9jkzvlhirwwx9w9v59mukqfmc5i3
542257
542256
2026-05-08T18:27:26Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542257
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacjeinne niż z: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
tpki8t76336tt46vk0yczfpq4pxbxvx
542260
542257
2026-05-08T19:22:17Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542260
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacjeinne niż z: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fh77s5b8c1qm86r22vgehhb4bbcpwx3
542261
542260
2026-05-08T19:26:04Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542261
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gzvte785b0glrhkiohcteff10r14bpt
542262
542261
2026-05-08T19:32:53Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542262
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wteedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z tej drugiej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0t9vvwfnujl3w0kp8goyscbhqa3fhpa
542263
542262
2026-05-08T19:42:14Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542263
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z tej drugiej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6brupixxmug4peldg8yktu8leg4ab4v
542264
542263
2026-05-08T19:50:24Z
Persino
2851
542264
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z tej drugiej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jxmu8j6i9umoa8pod8v00i2i1iqhwmp
542265
542264
2026-05-08T19:51:47Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542265
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7ti5wuq708y5j9jt9ppgkvwqy2okwkp
542266
542265
2026-05-09T06:30:31Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542266
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
iokfdce56oyn8vlpkh7xy93l1g16kdv
542267
542266
2026-05-09T06:44:08Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542267
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementówna stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bj94gxudad4dxzc7ng76559lpc2la1n
542268
542267
2026-05-09T07:17:06Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542268
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko kodami {{Strong|HTML}} zamienionymi na ich idpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela mikroszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h7my79ytceixrst2cetxzvsoj3nsex8
542269
542268
2026-05-09T07:29:32Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542269
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to funkcja, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}},
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela mikroszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ghoxyz7kqz7fjf8bbns264nxwwy076v
542270
542269
2026-05-09T07:40:48Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542270
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela mikroszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jqqmsebnsn8ee3iaddnohp3doxfayrc
542271
542270
2026-05-09T08:00:19Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542271
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela mikroszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5sttgzh5s3qq3hj5y0fipibsabu2vjp
542276
542271
2026-05-09T09:10:06Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542276
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela mikroszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rxiqo6gsvlluxtifka4faomo8dxg45x
542277
542276
2026-05-09T09:29:05Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542277
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja mikroszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte mikroszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela mikroszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f3a7y3tnevqd7r85fx87swbfo2kwsx4
542278
542277
2026-05-09T10:04:22Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542278
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzanajest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qhjs3rnozl2dxxtb83h1ze5y53mgl6a
542279
542278
2026-05-09T10:04:46Z
Persino
2851
/* Kolejność wywoływania elementów funkcji */
542279
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzanajest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bu7fytd4l10sv2iwgtgs4c905wa1uxu
542280
542279
2026-05-09T10:07:35Z
Persino
2851
/* Kolejność wywoływania elementów funkcji */
542280
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu: {{Code|<nowiki>%c</nowiki>}},
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5xq0wjrqfztfzzevksq2sdowgrhk73x
542281
542280
2026-05-09T10:41:03Z
Persino
2851
/* {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} */
542281
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów,
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
b7xy6xh2wv7q5x4qul9jqvgklp4v5x7
542282
542281
2026-05-09T10:59:39Z
Persino
2851
nie
542282
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
Funkcja sciagące opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy -a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{s|Dokumentacja|zawartość{{=}}}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw. Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron tworząc skomplikowany algorytm dla każdego ttypu przestrzeni i zawartości, wystarczy ta funkcja.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów,
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
40zfrvxhic93di0e16qkifx5ymhno6h
542283
542282
2026-05-09T11:00:18Z
Persino
2851
/* {{Code|p.SpreparowanyWikikodStrony(self,...)}} */
542283
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
Funkcja sciagące opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy -a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{s|Dokumentacja|zawartość{{=}}}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw. Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron, tworząc skomplikowany algorytm dla każdego typu przestrzeni i zawartości, wystarczy ta funkcja.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów,
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pnrbdxnbiaw85xeb6wfgh3cmc3ovbx0
542284
542283
2026-05-09T11:02:34Z
Persino
2851
/* {{Code|p.SpreparowanyWikikodStrony(self,...)}} */
542284
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
Funkcja sciagące opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy, a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{s|Dokumentacja|zawartość{{=}}}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}, to wtedyuzyskujemy jego zawartość w wyniku. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw.
Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron, tworząc skomplikowany algorytm dla każdego typu przestrzeni i zawartości, wystarczy ta funkcja.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów,
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ls3wvxgo3xduteuj2ayp6hvl6u7av2d
542285
542284
2026-05-09T11:03:04Z
Persino
2851
/* {{Code|p.SpreparowanyWikikodStrony(self,...)}} */
542285
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
Funkcja sciagące opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy, a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{s|Dokumentacja|zawartość{{=}}}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}, to wtedy uzyskujemy jego zawartość w wyniku. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw.
Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron, tworząc skomplikowany algorytm dla każdego typu przestrzeni i zawartości, wystarczy ta funkcja.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów,
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mmkrwdkhnbba4yr3y4xpvxi7925i297
542286
542285
2026-05-09T11:27:11Z
Persino
2851
/* {{Code|p.SpreparowanyWikikodStrony(self,...)}} */
542286
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
Funkcja sciagące opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy, a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{s|Dokumentacja|zawartość{{=}}}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}, to wtedy uzyskujemy jego zawartość w wyniku. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw.
Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron, tworząc skomplikowany algorytm dla każdego typu przestrzeni i zawartości, wystarczy ta funkcja.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Funkcja kozrsyta bezpośrednio z funkcji: {{Code|{{sr|#p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)|p=StronicowyParser/Tekst}}}}.
Parametry funkcji:
* {{Code|self}} - parametr obiektowy funkcji, potrzebne do tabeli błędów w funkcji najważniej, która jest wykorzystywana,
* {{Code|nazwa_modulu}} - nazwa strony szablonu, modułu lub ich opisów, i stron w innych przestrzeniach nazw,
* {{Code|dokumentacja}} - przy wartości {{Code|true}}, tego parametru, wtedy efunkcja nie koduje przetwarzanej strony,
* {{Code|inkludowana}} - przy wartości {{Code|true}}, tego parametru, wtedy strona zachowuje się jak inkludowana, przeciwny parametr do {{Code|czy_noinclude}}, jak w funkcji powyżej,
* Twory funkcyjne lub przyjmowane wartości {{Code|nil}}, zatem:
** {{Code|__FUNKCJA}} -
** {{Code|__FUNKCJA2}} -
** {{Code|__FUNKCJA3}} -
** {{Code|__FUNKCJA4}} -
** {{Code|__FUNKCJA5}} -
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} i {{Code|__FUNKCJA_PARAMETRY}} - funkcje opisane w punkcie w opisie wykorzystywanej głównej funkcji, powyżej w linku.
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów,
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hl1o07xsjq4wdidzset1n6l1byfi8mv
542287
542286
2026-05-09T11:28:00Z
Persino
2851
/* {{Code|p.SpreparowanyWikikodStrony(self,...)}} */
542287
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
Funkcja sciagące opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy, a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{s|Dokumentacja|zawartość{{=}}}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}, to wtedy uzyskujemy jego zawartość w wyniku. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw.
Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron, tworząc skomplikowany algorytm dla każdego typu przestrzeni i zawartości, wystarczy ta funkcja.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Funkcja kozrsyta bezpośrednio z funkcji: {{Code|{{sr|#p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)|p=StronicowyParser/Tekst}}}}.
Parametry funkcji:
* {{Code|self}} - parametr obiektowy funkcji, potrzebne do tabeli błędów w funkcji najważniej, która jest wykorzystywana,
* {{Code|nazwa_modulu}} - nazwa strony szablonu, modułu lub ich opisów, i stron w innych przestrzeniach nazw,
* {{Code|dokumentacja}} - przy wartości {{Code|true}}, tego parametru, wtedy funkcja nie koduje przetwarzanej strony,
* {{Code|inkludowana}} - przy wartości {{Code|true}}, tego parametru, wtedy strona zachowuje się jak inkludowana, przeciwny parametr do {{Code|czy_noinclude}}, jak w funkcji powyżej,
* Twory funkcyjne lub przyjmowane wartości {{Code|nil}}, zatem:
** {{Code|__FUNKCJA}} -
** {{Code|__FUNKCJA2}} -
** {{Code|__FUNKCJA3}} -
** {{Code|__FUNKCJA4}} -
** {{Code|__FUNKCJA5}} -
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} i {{Code|__FUNKCJA_PARAMETRY}} - funkcje opisane w punkcie w opisie wykorzystywanej głównej funkcji, powyżej w linku.
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów,
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rkmwg4c5r2mucqscvwpz9pg960itz0a
542288
542287
2026-05-09T11:52:18Z
Persino
2851
/* {{Code|p.SpreparowanyWikikodStrony(self,...)}} */
542288
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Tekst}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Code|p.SpreparowanyWikikodStrony(self,...)}} ==
Funkcja sciagące opisy szablonów ze strony szablonów, nie opisów, czy ze strony modułów ich opisy, a jeżeli tego opisu nie ma, to funkcja zwraca wartość {{Code|nil}}. A jeżeli tego nie ma w przypadku szablonów, to opisy z parametru {{s|Dokumentacja|zawartość{{=}}}}. Funkcja też ściąga zawartości stron szablonów, jeżeli na stronie szablonu jest szablon jego opisu, np. w postaci: {{Code|{{s|Nazwa szablonu/opis}}}}, to wtedy uzyskujemy jego zawartość w wyniku. Ma możliwości ściągania zawartości stron, jeżeli one istnieją, z innych przestrzeni nazw.
Jest to szablon ogólny do ogólnego ścigania stron z różnych przestrzeni, w takim przypadku nie ma potrzeby ściągania zawartości stron, tworząc skomplikowany algorytm dla każdego typu przestrzeni i zawartości, wystarczy ta funkcja.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Funkcja kozrsyta bezpośrednio z funkcji: {{Code|{{sr|#p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)|p=StronicowyParser/Tekst}}}}.
Parametry funkcji:
* {{Code|self}} - parametr obiektowy funkcji, potrzebne do tabeli błędów w funkcji najważniej, która jest wykorzystywana,
* {{Code|nazwa_modulu}} - nazwa strony szablonu, modułu lub ich opisów, i stron w innych przestrzeniach nazw,
* {{Code|dokumentacja}} - przy wartości {{Code|true}}, tego parametru, wtedy funkcja nie koduje wewnętrznie przetwarzanej strony,
* {{Code|inkludowana}} - przy wartości {{Code|true}}, tego parametru, wtedy strona zachowuje się jak inkludowana, przeciwny parametr do {{Code|czy_noinclude}}, jak w funkcji powyżej,
* Twory funkcyjne lub przyjmowane wartości {{Code|nil}}, zatem:
** {{Code|__FUNKCJA}} - funkcja przekształcające podany tekst, robiąc na nim pewne operacje, na samym końcu przetwarzania, bo kodowaniu, jeśli istnieje, przed samym zwróceniem wyniku,
** {{Code|__FUNKCJA2}} - jeśli {{Code|dokumentacja}}{{=}} {{Code|true}} - wtedy ta funkcja jest używana do sprawdzenia, czy dany tekst, w końcowym etapie, kodować,
** {{Code|__FUNKCJA3}} -
** {{Code|__FUNKCJA4}} -
** {{Code|__FUNKCJA5}} -
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} i {{Code|__FUNKCJA_PARAMETRY}} - funkcje opisane w punkcie w opisie wykorzystywanej głównej funkcji, powyżej w linku.
{{Hr}}
Funkcja {{Code|__FUNKCJA}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA=function(tekst,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,czy_nie_opis)
... ---- ciało funkcji;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst}} - przetwarzany tekst,
* {{Code|nazwa_modulu}} - nazwa modułu, przetwarzany uchwyt, modułu: {{Code|{{ld2|Szablonowe}}}},
* {{Code|tablica_obiektow_strony_dany_modul}} - tabela kodów bazy: {{Code|{{m|Szablonowe}}}},
* {{Code|dokumentacja}} - jeśli {{Code|true}}, wtedy kodowanie nie nastąpi,
* {{Code|czy_nie_opis}} - czy to nie jest opis szablonu, czy modułu, wtedy ta zmienna powinna przyjmować wartość {{Code|true}}, w przeciwnym razie {{Code|false}}.
{{Hr}}
Funkcja {{Code|__FUNKCJA2}} ma definicję:
<syntaxhighlight lang="lua">
local __FUNKCJA2=function(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)
... --- ciało funkcji;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu_caly}} - przetwarzaany tekst,
* {{Code|nazwa_modulu}} - nazwa modułu, przetwarzany uchwyt, modułu: {{Code|{{ld2|Szablonowe}}}},
* {{Code|tablica_obiektow_strony_dany_modul}} - tabela kodów bazy: {{Code|{{m|Szablonowe}}}}.
== {{Code|p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,...)}} ==
== {{Code|p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,...)}} ==
Funkcja służy dościągania zawartości stron z zawartością, a jeżeli zaawartości nie ma, to ona zwraca wartość {{Code|nil}}. Posiada własną walidacje nazwy stron,czy ona jest prawidłowa. Funkcja pseudoszablony nazw zastępuje odpowiednimi policzonymi lub podanymi nazwami. Rozwija instrukcje warunkowe wwedług ściśle określonych sposobów. Funkcja odpowiednio operuje na znacznikach wbudowanych {{Strong|MediaWiki}}, tzn. {{Tag|includeonly}} i {{Tag|noinclude}}, pozostawiając zawartość lub całość, usuwając je z tekstu, to też zależy od parametrów. Funkcja usuwa zawartość, wraz z nim, znacznika {{Tag|templatedata}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY)...end;
</syntaxhighlight>
Parametry funkcji podane w kolejności ich wsadzania do niej,one podaje się po kolei, a dalsze parametry nie podajemy, wtedy one są równe {{Code|nil}}:
* Zmienne obiektowe:
** {{Code|self}} - zmienna tworząca obiekty w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Tę funkcję np. można uruchomić poprzez, pisząc ogólnie: {{Code|p:PobierzSpecjalniePrzygotowanyPreWikikodStrony(nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,czy_szablon,nazwa_modulu_szablonu_opisu,szablon_nie_opis,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_KOMENTARZE,__FUNKCJA_KONTROLNE,__FUNKCJA_PARAMETRY);}}, gdzie {{Code|p}} - to odpowiednia zmienna.
* Zwykłe zmienne:
** {{Code|nazwa_strony}} - nazwa strony, której liczymy zawartość, używając funkcji: {{Code|mw.title.makeTitle}}, strona może nie istnieć,
** {{Code|nazwa_strony2}} - uchwyt zapamiętywania w bazie modułu: {{Code|{{m|Szablonowe}}}}, według ustalanej w funkcji: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, w jego zmiennej {{Code|self}} parametrowej,
** {{Code|czy_noinclude}} - jeśli odpowiada wartości prawdziwej, wtedy znaczniki: {{Tag|noinclude}} i {{Tag|includeonly}}, zachowują się, jakby były nieinkludowane, w przeciwnym wypadku ta zmienna działa dla tych wbudowanych znaczników, jakby strona była nie taka,
* Zmienna tablicowa:
** {{Code|szablony_magiczne}} - tablica zmiennych i ich wartości, zawartych elementów na stronie, w której są zawarte pseudoszablony, które w tekście są traktowane jako pewne zmienne,które obliczamy za pomocą tej zmiennej funkcyjnej,
* Inne zmienne
** {{Code|dokumentacja}} - określa, że tekst jest w trybie dokumentacji, wtedy on nie jest kodowany funkcjami: {{Code|{{m|Szablonowe}}}},
** {{Code|czy_szablon}} - gdy {{Code|nil}}, wtedy funkcja rozważa na: {{Tag|noinclude}} i {{Tag|includeonly}}, w przeciwnym wypadku to ona, która zamiast tego modyfikuje tekst w postaci wywołania: {{Code|tekst_artykulu{{=}}czy_szablon(tekst_artykulu,czy_noinclude)}}, czyli wtedy ona jest funkcją,
** {{Code|nazwa_modulu_szablonu_opisu}} - zmienne do obliczania tablicy {{Code|szablony_magiczne}}, która jest awaryjną nazwą strony, w przeciwnym wypadku dla tej tablicy jest używana zmienna: {{Code|nazwa_strony}}, z zamienionymi kodami {{Strong|HTML}} na znaki,
** {{Code|szablon_nie_opis}} - zmienna wskazująca, czy {{Code|nazwa strony}} wsskazuje na szablon, który nie jest opisem, wtedy tekst nie jest kodowwany,uzywany wraz ze zmienną: {{Code|dokumentacja}},
* Zmienne funkcyjne, które równie dobrze mogą przyjmować wartość {{Code|nil}}, wtedy jest przyjmowana wartość: {{Code|tekst_artykulu}}, jeżeli one mają wartość funkcyjną, te funkcje też mogą zwracać tą wartość, w takim przypadku brana jest ta wartość, którą pierwotnie chceliśmy przekształcać, w innym wypadku zwracana jest przetransformowana wartość operowana, zatem:
** {{Code|__FUNKCJA_ANALIZA_SPISOWA}} - operacje inne niż w: {{Code|__FUNKCJA_KOMENTARZE}} i {{Code|__FUNKCJA_KONTROLNE}},
** {{Code|__FUNKCJA_KOMENTARZE}} - funkcja operującana komentarzy, przeciwnie jest używana funkcja: {{Code|techniczne_modul.UsuwanieKomentarzowe(tekst_artykulu)}}, gdzie: {{Code|techniczne_modul{{=}}require("Module:Techniczne");}},
** {{Code|__FUNKCJA_KONTROLNE}} - funkcja usuwająca znaki kontrolne z tekstu takie jak: {{Code|<nowiki>%c</nowiki>}}, lub jemu podobne, np. znaki składające się z wielu bajtów,
** {{Code|__FUNKCJA_PARAMETRY}} - funkcja do rozważania parametry w samej funkcji kodowaniana poziomie tablicy bazy kodów: {{Code|tablica_obiektow_strony_dany_modul}}, wewnątrz funkcji kodującej w module: {{Code|{{m|Szablonowe/Potrzebne}}}}, czyli w: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe/Potrzebne}}}}.
Przykłady wywołań w innych funkcjach:
<syntaxhighlight lang="lua">
local tekst=p.PobierzSpecjalniePrzygotowanyPreWikikodStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,nil,nil,__FUNKCJA_PARAMETRY);
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_ANALIZA_SPISOWA}} operuje kodem na podstawie podanych parametrów, jego przykładowy ogólny kod:
<syntaxhighlight lang="lua">
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
....
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_artykulu}} - tekst do analizy, jak w funkcji nadrzędnej,
* {{Code|nazwa_modulu_szablonu_opisu}} - nazwa strony potrzebna do ustalania wartości nazw do tworzenia dalszego zmiennej {{Code|szablony_magiczne}}, w przeciwnym wypadku brana jest wartość: {{Code|nazwa_strony_bez_kodow_html}},
* {{Code|nazwa_strony_bez_kodow_html}} - jest to nazwa strony {{Code|nazwa_strony}}, tylko z kodami {{Strong|HTML}} zamienionymi na ich odpowiedniki znakowe,
* {{Code|szablony_magiczne}} - tabela pseudoszablonów z ich wartościami ustalonymi, jak powyżej,
* {{Code|tabela_nazw}} - tabela nazw obsługiwane przez funkcje nazw według: {{Code|{{ld2|Nazwy}}}}, używana też do ustalania zmiennej {{Code|szablony_magiczne}} wewnątrz tej funkcji nadrzędnej.
{{Hr}}
Funkcja {{Code|__FUNKCJA_KOMENTARZE}} ma przykładowy kod, który zamienia komentarze na pewne kody liczone funkcją: {{Code|szablonowe_modul.NormaKoduKodowaniaTekstu}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_KOMENTARZE=function(tekst_artykulu)
tekst_artykulu=p.UsuwanieKomentarzowe(tekst_artykulu,function(komentarz)
local kod=szablonowe_modul.NormaKoduKodowaniaTekstu("KOMENTARZ",licznik_komentarze);
tab_komentarze[licznik_komentarze]=komentarz;
licznik_komentarze=licznik_komentarze+1;
return kod;
end);
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_KONTROLNE}}, która usuwa znaki kontrolne, definicja:
<syntaxhighlight lang="lua">
local __FUNKCJA_KONTROLNE=function(tekst_artykulu)
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(%c)","");
return tekst_artykulu;
end;
</syntaxhighlight>
{{Hr}}
Funkcja {{Code|__FUNKCJA_PARAMETRY}} ma mniej więcej kod, który służy do modyfikacji elementów tablicy {{Code|tablica}}:
<syntaxhighlight lang="lua">
local __FUNKCJA_PARAMETRY=function(obiekt)
return function(tablica,klucz,wartosc_tablicy,czy_wartosc_tablicy_nil--[[ten element przyjmuje wtedy wartość: true, w przeciwnym wypadku false]])
... --- ciało funkcji operującej na tablicy: tablica;
end;
end;
</syntaxhighlight>
Tablica {{Code|tablica_obiektow_strony_dany_modul[obiekt]}} jest tablicą zawsze pustą, do niej dla każdego obiektu {{Code|obiekt}} przywiązana jest tablica, którą zapełaniamy elementami, modyfikującego tablicę {{Code|tablica}} w funkcji zwracanej przez {{Code|__FUNKCJA_PARAMETRY}}. Jak piszemy {{Code|tablica_obiektow_strony_dany_modul[obiekt][kod]}}, wtedy modyfikujemy tą drugą tablicę lub uzyskujemy dane z niej, oto przykład:
<syntaxhighlight lang="lua">
tablica_obiektow_strony_dany_modul["SZABLON"][1]="{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
local szablon=tablica_obiektow_strony_dany_modul["SZABLON"][1];
---- Wartość zmiennej: szablon, jest: "{{Zawartość|parametr1=wartość1|parametr2=wartość2}}";
</syntaxhighlight>
A dokładnie, podczas tych podstawień w tablicę i jej zmiany, wykonywany był kod:
<syntaxhighlight lang="lua">
__metatablica.__newindex=function(t,klucz,wartosc)
if(wartosc~=nil)then
local wartosc_tablicy=fun_tablica()[klucz];
if(wartosc_tablicy~=nil)then
wartosc_tablicy[1]=wartosc;
wartosc_tablicy[2]=false;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,wartosc_tablicy,false);end;
else
local tab={wartosc,true,};
fun_tablica()[klucz]=tab;
if(__FUNKCJA)then __FUNKCJA(fun_tablica(),klucz,tab,true);end;
end;
else
fun_tablica()[klucz]=nil;
end;
end;
</syntaxhighlight>
A {{Code|__metatablica}} to metatabelka, a {{Code|__FUNKCJA}} jest to funkcja zwracana przez {{Code|__FUNKCJA_PARAMETRY}}.
=== Kolejność wywoływania elementów funkcji ===
Kolejność wywołań:
* Sprawdzana jest, czy strona składa się z samych znaków odstępów lub dolnych myślników,
* Wywoływana jest funkcja: {{Code|{{sr|#p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)|p=Html}}}}, która z: {{Code|nazwa_strony}}, liczy: {{Code|nazwa_strony_bez_kodow_html}},
* Sprawdzana jest poprawność nazwy według: {{Code|{{sr|#p.CzyNiepoprawnaNazwa(nazwa_jednostki)|p=Pudełko/Tom I}}}}, ze zmiennej: {{Code|nazwa_strony_bez_kodow_html}}, a jeżeli ona zawiera błędy, wtedy są zapisywane błędy w tabeli błędów i zwracana jest wartość {{Code|nil}}, te błędy mogą być wykorzystane przez moduł: {{Code|{{ld2|StronicowyParser/Kategorie}}}},
* Aby uzyskać parametry strony uruchamiamy: {{Code|{{sr|#p.CzyStronaIstniejeJejParametry()|p=Techniczne}}}}, i z niej uzyskujemy wartości w postaci osobnych zwracanych zmiennych: {{Code|uchwyt strony}}, {{Code|tekst_artykulu}} i {{Code|czy_istnieje}}, jeżeli uchwyt jest nieprawidłowy, zawartość nie istnieje lub strona nie istnieje, wtedy błędy są zapisywane w tabeli błędów,
* Gdy {{Code|czy_szablon}} {{=}} {{Code|nil}}:
** Jeśli {{Code|czy_noinclude}} przyjmuje wartość {{Code|true}}, wtedy zawartość strony nie jest inkludowana, w przeciwnym wypadku jest przeciwnie, ze strony są usuwane pozostałości ze znaczników wbudowanych w {{Strong|MediaWiki}} i znaczniki wbudowane jak {{Tag|templatedata}},
** Przeciwna wypadek: wtedy {{Code|czy_szablon}} jest funkcją, wtedy wywoływana jest wtedy ona,
** W przeciwnie: żadne operacje w tym przypadku nie są robione,
* Usuwane są komentarze funkcją: {{Code|__FUNKCJA_KOMENTARZE}}, a jeżeli ona nie istnieje, wtedy uruchamiana jest: {{Code|{{sr|#p.UsuwanieKomentarzowe()|p=Techniczne}}}},
* Ustawiane są zmienne w: {{Code|szablony_magiczne}}, jeżeli nie jest ta wartość równa wartości odpowiadającej fałszywej, na podstawie tabeli: {{Code|tabela_nazw}},
** Usuwane są pseudoszablony, dalej jest uruchamiana funkcja: {{Code|{{sr|#p.InstrukcjeWarunkowe()|p=Ramka}}}}, by usunąc różne instrukcje warunkowe,
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_ANALIZA_SPISOWA}},
* Uruchamiana, jeśli istnieje, funkcja: {{Code|__FUNKCJA_KONTROLNE}},
* Jeśli: {{Code|szablon_nie_opis}} {{=}} {{Code|false}} i {{Code|dokumentacja}} {{=}} {{Code|false}}, wtedy jest uruchamiana funkcja: {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu(self,...)|p=Szablonowe}}}}, z parametrem funkcyjnym, jeśli jest, o nazwie: {{Code|__FUNKCJA_PARAMETRY}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2e6b3aov8pxuzipunyx0913f5rdtsms
Wikibooks:Moduły/StronicowyParser/informacje
4
63526
542247
542239
2026-05-08T15:26:54Z
Persino
2851
/* Ładowanie bazy danych strony */
542247
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|mw.loadData}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
Moduł ładuje funkcję z modułu {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi(self)|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest twrzona raz na całą stronę.
Funkcja jest wywoływana w funkcji na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron");
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
</syntaxhighlight>
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hxxcg12568g7w88n9g4todly0spjo5w
542248
542247
2026-05-08T15:28:08Z
Persino
2851
/* Ładowanie bazy danych strony */
542248
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/informacje}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Ładowanie bazy danych strony ==
Baza danych strony jest poprzez ładowanie tego modułu, z której uzykujemy tablicę transportu tego modułu, w której są ukryte jego elementy, tutaj jego podtablica:
<syntaxhighlight lang="lua">
---- Ładowania tablicy transportu modułu: "Module:StronicowyParser/informacje";
local stronicowyparser_informacje_modul=mw.loadData("Module:StronicowyParser/informacje");
---- Tabela, w której są zbierane informacje na temat strony;
local tablica_zebranych_danych_woluminowych=stronicowyparser_informacje_modul.tablica_zebranych_danych_woluminowych;
</syntaxhighlight>
Moduł ładuje się tylko raz na stronę (takie są właściwości: {{Code|mw.loadData}}, w przeciwieństwie do: {{Code|require}}), nawet gdy jest ładowany przez różne ramki w niej.
== Ładowalna funkcja bazy i jego tablica tworzona raz na całą stronę ==
Moduł ładuje funkcję z modułu {{Code|{{ld2|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}: {{Code|{{sr|#p.PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi(self)|p=StronicowyParser/GłównaFunkcjaZbieraniaDanychStron}}}}, do pobierania danych strony, który zapisuje dane w otrzymanej z niej tabeli. Tabela jest twrzona raz na całą stronę.
Funkcja jest wywoływana w funkcji na stronie: {{Code|m.InformacjeStronicowegoParsera()}}, której ciało:
<syntaxhighlight lang="lua">
local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/GłównaFunkcjaZbieraniaDanychStron");
return stronicowyparser_zbieraniedanychstron_modul:PobieranieInformacjiKorzystanejStronyWrazSkojarzonymi();
</syntaxhighlight>
To wywołanie znajduje się w innej funkcji w tym module, której kod piszemy jako:
<syntaxhighlight lang="lua">
local p={};
local m={};
function m.InformacjeStronicowegoParsera()
... ----- ciało tej funkcji;
end;
p.tablica_zebranych_danych_woluminowych=m.InformacjeStronicowegoParsera();
return p;
</syntaxhighlight>
To wywołanie zbiera dane o stronie w podtablicy tablicy transportu funkcji {{Code|p}}, która jest zwracana na zewnątrz tego modułu. Tym elementem jest {{Code|p.tablica_zebranych_danych_woluminowych}}, którą również możemy uzyskać z funkcji {{Code|mw.loadData}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5biw1oxwnhl8i9gbduo38fe0k4bdrvc
Zioła i przyprawy/Bibliografia
0
63530
542258
542242
2026-05-08T18:35:52Z
EdytaT
2664
542258
wikitext
text/x-wiki
{{Podrozdział|[[Zioła i przyprawy]]|Bibliografia}}
== Bibliografia ==
* Gewürzlexikon [https://www.zauberdergewuerze.de/gewuerze-a-z?p=3]
== Przypisy ==
{{Przypisy}}
bdr17cuu4he0vwudkuy56skz692juyv
Śpiewnik/Haniu moja, pójdź do domu/Tekst
0
63531
542243
2026-05-08T12:23:24Z
Ashaio
4702
warianty tekstu
542243
wikitext
text/x-wiki
{{T|Śpiewnik/NawigacjaTekst}}
== Wersja z 1832 ==
'''Autor:''' nieznany (pieśń ludowa)<br>
Opracowanie: Seweryn Goszczyński (1801–1876)<br>
{{Kolumny|3|
<poem>
1. Hanciu moja pudź do domu,
Wydam ja cię nie wiem komu,
Wydam ja cię Janickowi,
Hej, walnemu zbójnickowi.
2. Janku, Janku, tęgiś zbójnik!
Wies po wirchach kazdy chodnik.
We dnie idzies, w nocy wrócis,
A mnie biedną tylko smucis.
3. Mas kosulkę uznojoną,
A sablicku zakrwawioną.
Janku, Janku, kędyś ty był,
Coś se sablicku zakrwawił?
4. Wyrubałem tu jedlicku,
Co stojała w okienecku,
We dnie, w nocy hurkotała,
Mnie smutnemu spać nie dała.
5. Psyniósł ci jej chusty prać,
A nie dał ich rozwijać,
Ona prała, rozwijała,
Prawu rucku nadybała.
6. W tej rucecce pięć palusków,
A na małym złoty pierścień.
W tym pierścionku troje wrótka:
„Dyć to mego brata rucka.” –
7. Nie długo się obawiała,
Do matusi odsyłała.
„Matko moja psemilena,
Czy mam bratów syćkich doma?”
8. „Córuś moja! nic z jednego,
Z tych to siedmiu najmłodszego.”
Skoro wyszedł rok, półtora,
Nagodził jej Pan Bóg syna.
9. „Lulaj buba, synu mój,
Nie bądź tak jak ojciec twój.
Na kąski bym cię siekała,
Orłom, krukom rozsypała.”
10. A on za smerckiem słysy,
I od złości cały dysy.
„Śpiewaj Hanciu, jak śpiewała,
Kiedyś syna powijała.”
11. „Lulaj buba, synu mój,
Byś tak był, jak ojciec twój.
We winie bym cię kąpała,
A w jedwabiu powijała.”
12. „Oblecz Hanciu drogą satkę,
A pójdziemy na psechadzkę.”
„Dwa roceckim s tobą żyła,
Na psechadzki nie chodziła.”
13. I wziął ją za rucycku
I zawiódł ją do gaicku.
Ocka carne jej wydłubał,
Rucki białe jej odrubał.
14. Rozpłakał się syn jej młody,
Nie mógł ojcu on dać rady.
„Wstańze, Hanciu psemilena,
Pójdź, utul twojego syna.”
15. A sam posedł w skały, w lasy –
I nie ma go po te casy.
</poem>
}}
<br>
'''Źródło:''' {{Cytuj | autor = Seweryn Goszczyński | tytuł = Dzieła zbiorowe Seweryna Goszczyńskiego | url = https://polona.pl/item-view/028621e1-4d75-4065-abe3-ddc970f9a3aa?page=329 | miejsce = Lwów | data = [1911] | s = 292–293}}
== Wersja z 1838 (1857) ==
'''Autor:''' nieznany (pieśń ludowa)<br>
Oprac. Żegota Pauli (1814–1895) i Oskar Kolberg (1814-1890)<br>
{{Kolumny|3|
<poem>
1. Przy gaiczku przy zielonym
Orze dziewcze jednym koniem;
Jeszcze skiby nie zorała,
Matusia ją zawołała.
2. „Moje dziecię, pójdź do domu,
Wydam ja cię nie wiem komu.
Wydam ja cię za jednego,
Za hetmana zbójnickiego.”
3. „Kiedy my się pobierzemy,
Gdzież bywać będziemy?”
„Tu w zielonym gaiczku
Zbudujemy se chałpeczku.”
5. Żyli z sobą rok, czy dwa
Nagrodził im Pan Bóg syna.
Miła syna kolébała
I tak mu pięknie śpiewała:
6. „Lulaj, lulaj synoszku mój,
Byś nie był tak jak ojciec twój.
Na kąski bym cię rąbała,
Wronom, srokom rozdawała!
7. Wednie idzie, w nocy przyjdzie,
Nic dobrego nie przyniesie,
Ino szabelkę skrwawioną
I koszulę uznojoną.”
8. „Śpiewaj miła, jakś śpiewała,
Kiedyś syna kolébała.”
„Kiedy ja syna kolébała,
Tom mu tak pięknie śpiewała:
9. „Lulaj, lulaj synu mój,
Żebyś był taki jak ojciec twój.
We winie bym cię kąpała,
W paciejoty powijała.”
10. On wziąwszy ją za rączeczkę,
wywiodłszy ją na łączeczkę,
Rączki, nóżki jej odrąbał
A oczyczka jej wydłubał.
11. „Gdzie to jedziecie furmani?”
„Od Dąbrowy, do Morawy.”
„Nie masz tu kogo od Morawy,
Od mej matusi kochanej?
12. Na rąbeczku bym pisała,
Do matusi bym posłała,
W jakie mnie miasto wydała;
Masz ich matusiu jeszcze dwie,
Wydaj ich lepiéj jako mnie.
13. Ja się matusiu dobrze mam,
Rączek, nóżek, oczków nie mam,
Wron koło siebie dosyć mam.”
14. Skoro począł syn płakaty,
Nie począł mu żadnej rady:
„Stańże miła – jakieś była,
Ukój że mi tego syna.”
15. „Jakże ja syna koić mam,
Rączek, nóżek, oczków nie mam,
Wron, srok dość koło siebie mam.”
</poem>
}}
<br>
'''Źródło:''' {{Cytuj | autor = Oskar Kolberg | tytuł = Pieśni ludu polskiego | miejsce = Warszawa | wydawca = Księgarnia J. Jaworskiego | data = 1857 | url = https://polona.pl/item-view/285340e6-7268-42ef-ae04-52e70451569b?page=296 | s = s. 280–281 (pieśń 37b)}} Por. {{ Cytuj | autor = Żegota Pauli | tytuł = Pieśni ludu polskiego w Galicyi | url =https://polona.pl/item-view/5f0c434c-2ee3-43f5-92a7-fa916f87526d?page=94 | miejsce = Lwów | data = 1838 | s = 85–89}}
== Wersja z 1845 (1857) ==
'''Autor:''' nieznany (pieśń ludowa)<br>
Oprac. Ludwik Zejszner (1805–1871) i Oskar Kolberg (1814-1890)<br>
{{Kolumny|3|
<poem>
1. „Haniu moja, pójdź do domu,
Wydam ja cię nie wiem komu.
2. Wydam ja cię Janiczkowi,
Hej walnemu zbójniczkowi.”
3. „Janku, Janku, tęgiś zbójnik,
Wiesz po wirchach każdy chodnik,
4. We dnie idziesz, w nocy wrócisz,
A mnie biedną tylko smucisz.
5. Masz koszulkę uznojoną,
A szbliczkę zakrwawioną.
6. Janku, Janku, kędyś ty był,
Coś se szbliczku zakrwawił?”
7. „Wyrubałem tu jedliczku,
Co stojała w okieneczku.
8. We dnie w nocy hurkotała,
Mnie smutnemu spać nie dała.”
9. Przyniósł ci jej szaty prać,
A nie dał ich rozwijać.
10. Ona prała, rozwijała,
Prawą rączkę nadybała.
11. W tej rączeczce pięć paluszków,
A na małym złoty pierścień.
12. Na tym pierścieniu troje wrotka
„Dyć to mego brata rączka.”
13. Niedługo się obawiała,
Do matusi odsyłała.
14. „Matko moja przemilejsza,
Czy mam bratów wszystkich doma?”
15. „Córuś moja, nic z jednego,
Z tych to siedmiu najmłodszego.”
16. Skoro wyszedł rok, półtora,
Nagrodził jej Pan Bóg syna:
17. „Lulaj buba synku mój,
Nie bądź tak jak ojciec twój.
18. Na kąski bym cię siekała,
Orłom, krukom rozsypała!”
19. Mąż to za smerekiem słyszy
I od złości cały dyszy:
20. „Śpiewaj Haniu jakeś śpiewała,
Kiedyś syna powijała.”
21. „Lulaj buba synku mój,
Byś był tak jak ojciec twój.
22. We winie bym cię kąpała,
A w jedwabie powijała.”
23. „Oblecz Haniu drugą szatkę,
A pójdziema na przechadzkę.”
24. „Dwa roczeczkim z tobą żyła,
Na przechadzkę nie chodziła.”
25. I wziąłci ją za rączeczku,
I zawiódł ją do gaiczku.
26. Oczka czarne jej wydłubał,
Rączki białe jej odrubał.
</poem>
}}
<br>
'''Źródło:''' {{Cytuj | autor = Oskar Kolberg | tytuł = Pieśni ludu polskiego | miejsce = Warszawa | wydawca = Księgarnia J. Jaworskiego | data = 1857 | url = https://polona.pl/item-view/285340e6-7268-42ef-ae04-52e70451569b?page=296 | s = s. 279–280 (pieśń 37a)}} Por. także {{Cytuj | autor = Ludwik Zejszner | tytuł = Pieśni ludu Podhalan czyli Gorali tatrowych polskich | url = https://polona.pl/item-view/9823042f-e87a-47a1-bee1-7fa52c0f3b5e?page=182 | miejsce = Warszawa | data = 1845 | s = 171–173}}
lk3trxiyyfym5evvagqxp3hu5w42i39