Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.39.0-wmf.26
first-letter
Media
Specjalna
Dyskusja
Wikipedysta
Dyskusja wikipedysty
Wikibooks
Dyskusja Wikibooks
Plik
Dyskusja pliku
MediaWiki
Dyskusja MediaWiki
Szablon
Dyskusja szablonu
Pomoc
Dyskusja pomocy
Kategoria
Dyskusja kategorii
Wikijunior
Dyskusja Wikijuniora
TimedText
TimedText talk
Moduł
Dyskusja modułu
Gadżet
Dyskusja gadżetu
Definicja gadżetu
Dyskusja definicji gadżetu
Szablon:NAZWAKSIĄŻKI/opis
10
27690
438811
426521
2022-08-26T20:18:31Z
Persino
2851
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Module:Nazwy}}
{{Szablony nazw}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
{{#switch: {{ROOTPAGENAME}}
| NAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika z nazwą przestrzeni nazw, do której należy
| SUBNAZWAKSIĄŻKI = Zwraca nazwę książki, bez jego adresu i przestrzeni nazw, do której należy
| NAZWAARTYKUŁUKSIĄŻKI = Zwraca nazwę artykułu podręcznika
| NAZWAARTYKUŁUKSIĄŻKI2 = Zwraca nazwę artykułu książki lub tytuł książki, jeśli podano pełną nazwę książki
| NAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, bez nazwy przestrzeni strony,
| PEŁNANAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, z nazwą przestrzeni strony,
| NAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony z nazwą przestrzeni nazw, do której należy
| NAZWAPRZESTRZENI = Zwarca nazwę przestrzeni nazw, strony
| PRZEDMIOTOWAPRZESTRZEŃ = Zwraca nazwę przedmiotowej przestrzeni nazw, strony
| PRZESTRZEŃDYSKUSJI = Zwraca nazwę przestrzeni nazw dyskusji, strony
| NAZWASTRONY = Zwraca nazwę strony bez nazwy przestrzeni nazw
| BAZOWANAZWASTRONY = Zwraca nazwę bazową strony, bez nazwy przestrzeni nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PEŁNANAZWASTRONY = Zwraca nazwę strony z nazwą przestrzeni nazw
| PEŁNABAZOWANAZWASTRONY = Zwraca nazwę bazową strony z nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PRZEDMIOTOWABAZOWANAZWASTRONY=Zwraca pełną nazwę bazową strony z przedmiotową nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron przedmiotowych do podanej strony
| BAZOWANAZWASTRONYDYSKUSJI=Zwraca pełną nazwę bazową strony z nazwą przestrzenią nazw dyskusji, czyli bezporedniego rodzica w drzewie adresów stron dyskusji do podanej strony
| NAZWASTRONYDYSKUSJI = Zwraca nazwę strony dyskusji, z jej nazwą przestrzenią nazw, do podanej strony
| PRZEDMIOTOWANAZWASTRONY = Zwraca pełną nazwę strony z przedmiotową nazwą przestrzeni nazw
| NAZWAPSUBSTRONY = Zwraca substronę pełnej nazwy strony, ale bez nazwy przestrzeni nazw, gdy ta strona nie jest podstroną jakieś innej strony
| #default = Zwraca przetworzoną nazwę strony lub nazwę przestrzeni nazw, na podstawie podanej pełnej nazwy strony
}} - przykłady poniżej.
== Opis parametrów ==
Parametrem tego szablonu jest pełna nazwa strony (nazwa strony z nazwą przestrzeni nazw).
== Przykłady ==
{{tt|{{s|{{ROOTPAGENAME}}|}}}} → {{tt|{{ {{ROOTPAGENAME}}|}}}}
{{tt|{{s|msg:{{ROOTPAGENAME}}}}}} → {{tt|{{msg:{{ROOTPAGENAME}}}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Wikijunior:Biologia}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Wikijunior:Biologia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Historia}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Historia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Wikijunior:Języki świata/Języki germańskie/Angielski}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Wikijunior:Języki świata/Języki germańskie/Angielski}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Geografia/Mapy polityczne}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Geografia/Mapy polityczne}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja:Szachy/Puzzle/Bezpośredni partnerzy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja:Szachy/Puzzle/Bezpośredni partnerzy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Dinozaury/Apatozaur}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Dinozaury/Apatozaur}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Category:Ogrodnictwo/Szablony/Pudła}}}} → {{tt|{{ {{ROOTPAGENAME}}|Category:Ogrodnictwo/Szablony/Pudła}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Poczekalnia/Konserwacja}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Poczekalnia/Konserwacja}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Kwestie techniczne/Archiwum kwestii technicznych}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Kwestie techniczne/Archiwum kwestii technicznych}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}} → {{tt|{{ {{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Strona główna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Strona główna}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony nazw}}
</includeonly>
mvdvrzpzxbipw6dg6agb65elpgsijso
438818
438811
2022-08-27T06:16:14Z
Persino
2851
/* Przykłady */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Module:Nazwy}}
{{Szablony nazw}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
{{#switch: {{ROOTPAGENAME}}
| NAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika z nazwą przestrzeni nazw, do której należy
| SUBNAZWAKSIĄŻKI = Zwraca nazwę książki, bez jego adresu i przestrzeni nazw, do której należy
| NAZWAARTYKUŁUKSIĄŻKI = Zwraca nazwę artykułu podręcznika
| NAZWAARTYKUŁUKSIĄŻKI2 = Zwraca nazwę artykułu książki lub tytuł książki, jeśli podano pełną nazwę książki
| NAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, bez nazwy przestrzeni strony,
| PEŁNANAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, z nazwą przestrzeni strony,
| NAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony z nazwą przestrzeni nazw, do której należy
| NAZWAPRZESTRZENI = Zwarca nazwę przestrzeni nazw, strony
| PRZEDMIOTOWAPRZESTRZEŃ = Zwraca nazwę przedmiotowej przestrzeni nazw, strony
| PRZESTRZEŃDYSKUSJI = Zwraca nazwę przestrzeni nazw dyskusji, strony
| NAZWASTRONY = Zwraca nazwę strony bez nazwy przestrzeni nazw
| BAZOWANAZWASTRONY = Zwraca nazwę bazową strony, bez nazwy przestrzeni nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PEŁNANAZWASTRONY = Zwraca nazwę strony z nazwą przestrzeni nazw
| PEŁNABAZOWANAZWASTRONY = Zwraca nazwę bazową strony z nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PRZEDMIOTOWABAZOWANAZWASTRONY=Zwraca pełną nazwę bazową strony z przedmiotową nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron przedmiotowych do podanej strony
| BAZOWANAZWASTRONYDYSKUSJI=Zwraca pełną nazwę bazową strony z nazwą przestrzenią nazw dyskusji, czyli bezporedniego rodzica w drzewie adresów stron dyskusji do podanej strony
| NAZWASTRONYDYSKUSJI = Zwraca nazwę strony dyskusji, z jej nazwą przestrzenią nazw, do podanej strony
| PRZEDMIOTOWANAZWASTRONY = Zwraca pełną nazwę strony z przedmiotową nazwą przestrzeni nazw
| NAZWAPSUBSTRONY = Zwraca substronę pełnej nazwy strony, ale bez nazwy przestrzeni nazw, gdy ta strona nie jest podstroną jakieś innej strony
| #default = Zwraca przetworzoną nazwę strony lub nazwę przestrzeni nazw, na podstawie podanej pełnej nazwy strony
}} - przykłady poniżej.
== Opis parametrów ==
Parametrem tego szablonu jest pełna nazwa strony (nazwa strony z nazwą przestrzeni nazw).
== Przykłady ==
{{tt|{{s|{{ROOTPAGENAME}}|}}}} → {{tt|{{ {{ROOTPAGENAME}}|}}}}
{{tt|{{s|msg:{{ROOTPAGENAME}}}}}} → {{tt|{{msg:{{ROOTPAGENAME}}}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Wikijunior:Biologia}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Wikijunior:Biologia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Historia}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Historia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Wikijunior:Języki świata/Języki germańskie/Angielski}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Wikijunior:Języki świata/Języki germańskie/Angielski}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Geografia/Mapy polityczne}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Geografia/Mapy polityczne}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja:Szachy/Puzzle/Bezpośredni partnerzy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja:Szachy/Puzzle/Bezpośredni partnerzy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Dinozaury/Apatozaur}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Dinozaury/Apatozaur}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Category:Ogrodnictwo/Szablony/Pudła}}}} → {{tt|{{ {{ROOTPAGENAME}}|Category:Ogrodnictwo/Szablony/Pudła}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Szablon:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|Szablon:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Szablon:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Szablon:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Szablon:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Szablon:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Moduł:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|Moduł:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja moduł:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Moduł:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Moduł:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Moduł:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Moduł:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Poczekalnia/Konserwacja}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Poczekalnia/Konserwacja}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Kwestie techniczne/Archiwum kwestii technicznych}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Kwestie techniczne/Archiwum kwestii technicznych}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}} → {{tt|{{ {{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Strona główna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Strona główna}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony nazw}}
</includeonly>
ihj0m8ww5g55tkwoq8yh3ovbwtukhxm
438819
438818
2022-08-27T06:17:05Z
Persino
2851
/* Przykłady */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Module:Nazwy}}
{{Szablony nazw}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
{{#switch: {{ROOTPAGENAME}}
| NAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika z nazwą przestrzeni nazw, do której należy
| SUBNAZWAKSIĄŻKI = Zwraca nazwę książki, bez jego adresu i przestrzeni nazw, do której należy
| NAZWAARTYKUŁUKSIĄŻKI = Zwraca nazwę artykułu podręcznika
| NAZWAARTYKUŁUKSIĄŻKI2 = Zwraca nazwę artykułu książki lub tytuł książki, jeśli podano pełną nazwę książki
| NAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, bez nazwy przestrzeni strony,
| PEŁNANAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, z nazwą przestrzeni strony,
| NAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony z nazwą przestrzeni nazw, do której należy
| NAZWAPRZESTRZENI = Zwarca nazwę przestrzeni nazw, strony
| PRZEDMIOTOWAPRZESTRZEŃ = Zwraca nazwę przedmiotowej przestrzeni nazw, strony
| PRZESTRZEŃDYSKUSJI = Zwraca nazwę przestrzeni nazw dyskusji, strony
| NAZWASTRONY = Zwraca nazwę strony bez nazwy przestrzeni nazw
| BAZOWANAZWASTRONY = Zwraca nazwę bazową strony, bez nazwy przestrzeni nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PEŁNANAZWASTRONY = Zwraca nazwę strony z nazwą przestrzeni nazw
| PEŁNABAZOWANAZWASTRONY = Zwraca nazwę bazową strony z nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PRZEDMIOTOWABAZOWANAZWASTRONY=Zwraca pełną nazwę bazową strony z przedmiotową nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron przedmiotowych do podanej strony
| BAZOWANAZWASTRONYDYSKUSJI=Zwraca pełną nazwę bazową strony z nazwą przestrzenią nazw dyskusji, czyli bezporedniego rodzica w drzewie adresów stron dyskusji do podanej strony
| NAZWASTRONYDYSKUSJI = Zwraca nazwę strony dyskusji, z jej nazwą przestrzenią nazw, do podanej strony
| PRZEDMIOTOWANAZWASTRONY = Zwraca pełną nazwę strony z przedmiotową nazwą przestrzeni nazw
| NAZWAPSUBSTRONY = Zwraca substronę pełnej nazwy strony, ale bez nazwy przestrzeni nazw, gdy ta strona nie jest podstroną jakieś innej strony
| #default = Zwraca przetworzoną nazwę strony lub nazwę przestrzeni nazw, na podstawie podanej pełnej nazwy strony
}} - przykłady poniżej.
== Opis parametrów ==
Parametrem tego szablonu jest pełna nazwa strony (nazwa strony z nazwą przestrzeni nazw).
== Przykłady ==
{{tt|{{s|{{ROOTPAGENAME}}|}}}} → {{tt|{{ {{ROOTPAGENAME}}|}}}}
{{tt|{{s|msg:{{ROOTPAGENAME}}}}}} → {{tt|{{msg:{{ROOTPAGENAME}}}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Wikijunior:Biologia}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Wikijunior:Biologia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Historia}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Historia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Wikijunior:Języki świata/Języki germańskie/Angielski}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Wikijunior:Języki świata/Języki germańskie/Angielski}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Geografia/Mapy polityczne}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Geografia/Mapy polityczne}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja:Szachy/Puzzle/Bezpośredni partnerzy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja:Szachy/Puzzle/Bezpośredni partnerzy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior:Dinozaury/Apatozaur}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior:Dinozaury/Apatozaur}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Category:Ogrodnictwo/Szablony/Pudła}}}} → {{tt|{{ {{ROOTPAGENAME}}|Category:Ogrodnictwo/Szablony/Pudła}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik/Mechanika kwantowa}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik/Matematyka}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja wikipedysty:Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikipedysta:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikipedysta:Użytkownik}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Szablon:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|Szablon:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Szablon:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Szablon:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja szablonu:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Szablon:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Szablon:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Moduł:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|Moduł:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja moduł:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Moduł:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|Moduł:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja modułu:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Moduł:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|Moduł:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|Dyskusja Wikibooks:Poczekalnia/Konserwacja}}}} → {{tt|{{ {{ROOTPAGENAME}}|Dyskusja Wikibooks:Poczekalnia/Konserwacja}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikibooks:Kwestie techniczne/Archiwum kwestii technicznych}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikibooks:Kwestie techniczne/Archiwum kwestii technicznych}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}} → {{tt|{{ {{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Strona główna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Strona główna}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony nazw}}
</includeonly>
hjz3xle46r0za1256hqchh02ndpnnwc
438820
438819
2022-08-27T06:28:55Z
Persino
2851
/* Przykłady */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Module:Nazwy}}
{{Szablony nazw}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
{{#switch: {{ROOTPAGENAME}}
| NAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika z nazwą przestrzeni nazw, do której należy
| SUBNAZWAKSIĄŻKI = Zwraca nazwę książki, bez jego adresu i przestrzeni nazw, do której należy
| NAZWAARTYKUŁUKSIĄŻKI = Zwraca nazwę artykułu podręcznika
| NAZWAARTYKUŁUKSIĄŻKI2 = Zwraca nazwę artykułu książki lub tytuł książki, jeśli podano pełną nazwę książki
| NAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, bez nazwy przestrzeni strony,
| PEŁNANAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, z nazwą przestrzeni strony,
| NAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony z nazwą przestrzeni nazw, do której należy
| NAZWAPRZESTRZENI = Zwarca nazwę przestrzeni nazw, strony
| PRZEDMIOTOWAPRZESTRZEŃ = Zwraca nazwę przedmiotowej przestrzeni nazw, strony
| PRZESTRZEŃDYSKUSJI = Zwraca nazwę przestrzeni nazw dyskusji, strony
| NAZWASTRONY = Zwraca nazwę strony bez nazwy przestrzeni nazw
| BAZOWANAZWASTRONY = Zwraca nazwę bazową strony, bez nazwy przestrzeni nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PEŁNANAZWASTRONY = Zwraca nazwę strony z nazwą przestrzeni nazw
| PEŁNABAZOWANAZWASTRONY = Zwraca nazwę bazową strony z nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PRZEDMIOTOWABAZOWANAZWASTRONY=Zwraca pełną nazwę bazową strony z przedmiotową nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron przedmiotowych do podanej strony
| BAZOWANAZWASTRONYDYSKUSJI=Zwraca pełną nazwę bazową strony z nazwą przestrzenią nazw dyskusji, czyli bezporedniego rodzica w drzewie adresów stron dyskusji do podanej strony
| NAZWASTRONYDYSKUSJI = Zwraca nazwę strony dyskusji, z jej nazwą przestrzenią nazw, do podanej strony
| PRZEDMIOTOWANAZWASTRONY = Zwraca pełną nazwę strony z przedmiotową nazwą przestrzeni nazw
| NAZWAPSUBSTRONY = Zwraca substronę pełnej nazwy strony, ale bez nazwy przestrzeni nazw, gdy ta strona nie jest podstroną jakieś innej strony
| #default = Zwraca przetworzoną nazwę strony lub nazwę przestrzeni nazw, na podstawie podanej pełnej nazwy strony
}} - przykłady poniżej.
== Opis parametrów ==
Parametrem tego szablonu jest pełna nazwa strony (nazwa strony z nazwą przestrzeni nazw).
== Przykłady ==
{{tt|{{s|{{ROOTPAGENAME}}|}}}} → {{tt|{{ {{ROOTPAGENAME}}|}}}}
{{tt|{{s|msg:{{ROOTPAGENAME}}}}}} → {{tt|{{msg:{{ROOTPAGENAME}}}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Biologia}}}} → {{tt|{{ {{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Biologia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Historia}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Historia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Języki świata/Języki germańskie/Angielski}}}} → {{tt|{{ {{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Języki świata/Języki germańskie/Angielski}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Geografia/Mapy polityczne}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Geografia/Mapy polityczne}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Talk}}:Szachy/Puzzle/Bezpośredni partnerzy}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Talk}}:Szachy/Puzzle/Bezpośredni partnerzy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Dinozaury/Apatozaur}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Dinozaury/Apatozaur}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Category:Ogrodnictwo/{{Np|Template}}y/Pudła}}}} → {{tt|{{ {{ROOTPAGENAME}}|Category:Ogrodnictwo/{{Np|Template}}y/Pudła}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior talk}}:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior talk}}:Robaki/Błąd tarczy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Poczekalnia/Konserwacja}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Poczekalnia/Konserwacja}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Kwestie techniczne/Archiwum kwestii technicznych}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Kwestie techniczne/Archiwum kwestii technicznych}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}} → {{tt|{{ {{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Strona główna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Strona główna}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony nazw}}
</includeonly>
20piz9c6b8dz5vtiupsdfr2qr3y86ho
438821
438820
2022-08-27T06:31:38Z
Persino
2851
/* Użycie */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Module:Nazwy}}
{{Szablony nazw}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
{{#switch: {{ROOTPAGENAME}}
| NAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika z nazwą przestrzeni nazw, do której należy
| SUBNAZWAKSIĄŻKI = Zwraca nazwę książki, bez jego adresu i przestrzeni nazw, do której należy
| NAZWAARTYKUŁUKSIĄŻKI = Zwraca nazwę artykułu podręcznika
| NAZWAARTYKUŁUKSIĄŻKI2 = Zwraca nazwę artykułu książki lub tytuł książki, jeśli podano pełną nazwę książki
| NAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, bez nazwy przestrzeni strony
| PEŁNANAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, z nazwą przestrzeni strony
| NAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony z nazwą przestrzeni nazw, do której należy
| NAZWAPRZESTRZENI = Zwarca nazwę przestrzeni nazw, strony
| PRZEDMIOTOWAPRZESTRZEŃ = Zwraca nazwę przedmiotowej przestrzeni nazw, strony
| PRZESTRZEŃDYSKUSJI = Zwraca nazwę przestrzeni nazw dyskusji, strony
| NAZWASTRONY = Zwraca nazwę strony bez nazwy przestrzeni nazw
| BAZOWANAZWASTRONY = Zwraca nazwę bazową strony, bez nazwy przestrzeni nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PEŁNANAZWASTRONY = Zwraca nazwę strony z nazwą przestrzeni nazw
| PEŁNABAZOWANAZWASTRONY = Zwraca nazwę bazową strony z nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PRZEDMIOTOWABAZOWANAZWASTRONY=Zwraca pełną nazwę bazową strony z przedmiotową nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron przedmiotowych do podanej strony
| BAZOWANAZWASTRONYDYSKUSJI=Zwraca pełną nazwę bazową strony z nazwą przestrzenią nazw dyskusji, czyli bezporedniego rodzica w drzewie adresów stron dyskusji do podanej strony
| NAZWASTRONYDYSKUSJI = Zwraca nazwę strony dyskusji, z jej nazwą przestrzenią nazw, do podanej strony
| PRZEDMIOTOWANAZWASTRONY = Zwraca pełną nazwę strony z przedmiotową nazwą przestrzeni nazw
| NAZWAPSUBSTRONY = Zwraca substronę pełnej nazwy strony, ale bez nazwy przestrzeni nazw, gdy ta strona nie jest podstroną jakieś innej strony
| #default = Zwraca przetworzoną nazwę strony lub nazwę przestrzeni nazw, na podstawie podanej pełnej nazwy strony
}} - przykłady poniżej.
== Opis parametrów ==
Parametrem tego szablonu jest pełna nazwa strony (nazwa strony z nazwą przestrzeni nazw).
== Przykłady ==
{{tt|{{s|{{ROOTPAGENAME}}|}}}} → {{tt|{{ {{ROOTPAGENAME}}|}}}}
{{tt|{{s|msg:{{ROOTPAGENAME}}}}}} → {{tt|{{msg:{{ROOTPAGENAME}}}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Biologia}}}} → {{tt|{{ {{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Biologia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Historia}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Historia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Języki świata/Języki germańskie/Angielski}}}} → {{tt|{{ {{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Języki świata/Języki germańskie/Angielski}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Geografia/Mapy polityczne}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Geografia/Mapy polityczne}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Talk}}:Szachy/Puzzle/Bezpośredni partnerzy}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Talk}}:Szachy/Puzzle/Bezpośredni partnerzy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Dinozaury/Apatozaur}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Dinozaury/Apatozaur}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Category:Ogrodnictwo/{{Np|Template}}y/Pudła}}}} → {{tt|{{ {{ROOTPAGENAME}}|Category:Ogrodnictwo/{{Np|Template}}y/Pudła}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior talk}}:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior talk}}:Robaki/Błąd tarczy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Poczekalnia/Konserwacja}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Poczekalnia/Konserwacja}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Kwestie techniczne/Archiwum kwestii technicznych}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Kwestie techniczne/Archiwum kwestii technicznych}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}} → {{tt|{{ {{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Strona główna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Strona główna}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony nazw}}
</includeonly>
od7iaji6rjt99lrse2pob7tx3ncqctb
438822
438821
2022-08-27T07:05:27Z
Persino
2851
/* Przykłady */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Module:Nazwy}}
{{Szablony nazw}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
{{#switch: {{ROOTPAGENAME}}
| NAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKSIĄŻKI = Zwraca nazwę adresu podręcznika z nazwą przestrzeni nazw, do której należy
| SUBNAZWAKSIĄŻKI = Zwraca nazwę książki, bez jego adresu i przestrzeni nazw, do której należy
| NAZWAARTYKUŁUKSIĄŻKI = Zwraca nazwę artykułu podręcznika
| NAZWAARTYKUŁUKSIĄŻKI2 = Zwraca nazwę artykułu książki lub tytuł książki, jeśli podano pełną nazwę książki
| NAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, bez nazwy przestrzeni strony
| PEŁNANAZWAPRZESTRZENIKSIĄŻKI = Zwraca nazwę przestrzeni nazw, do której należy książka, z nazwą przestrzeni strony
| NAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony bez nazwy przestrzeni nazw, do której należy
| PEŁNANAZWAKORZENIASTRONY = Zwraca nazwę korzenia strony z nazwą przestrzeni nazw, do której należy
| NAZWAPRZESTRZENI = Zwarca nazwę przestrzeni nazw, strony
| PRZEDMIOTOWAPRZESTRZEŃ = Zwraca nazwę przedmiotowej przestrzeni nazw, strony
| PRZESTRZEŃDYSKUSJI = Zwraca nazwę przestrzeni nazw dyskusji, strony
| NAZWASTRONY = Zwraca nazwę strony bez nazwy przestrzeni nazw
| BAZOWANAZWASTRONY = Zwraca nazwę bazową strony, bez nazwy przestrzeni nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PEŁNANAZWASTRONY = Zwraca nazwę strony z nazwą przestrzeni nazw
| PEŁNABAZOWANAZWASTRONY = Zwraca nazwę bazową strony z nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron
| PRZEDMIOTOWABAZOWANAZWASTRONY=Zwraca pełną nazwę bazową strony z przedmiotową nazwą przestrzenią nazw, czyli bezporedniego rodzica w drzewie adresów stron przedmiotowych do podanej strony
| BAZOWANAZWASTRONYDYSKUSJI=Zwraca pełną nazwę bazową strony z nazwą przestrzenią nazw dyskusji, czyli bezporedniego rodzica w drzewie adresów stron dyskusji do podanej strony
| NAZWASTRONYDYSKUSJI = Zwraca nazwę strony dyskusji, z jej nazwą przestrzenią nazw, do podanej strony
| PRZEDMIOTOWANAZWASTRONY = Zwraca pełną nazwę strony z przedmiotową nazwą przestrzeni nazw
| NAZWAPSUBSTRONY = Zwraca substronę pełnej nazwy strony, ale bez nazwy przestrzeni nazw, gdy ta strona nie jest podstroną jakieś innej strony
| #default = Zwraca przetworzoną nazwę strony lub nazwę przestrzeni nazw, na podstawie podanej pełnej nazwy strony
}} - przykłady poniżej.
== Opis parametrów ==
Parametrem tego szablonu jest pełna nazwa strony (nazwa strony z nazwą przestrzeni nazw).
== Przykłady ==
{{tt|{{s|{{ROOTPAGENAME}}|}}}} → {{tt|{{ {{ROOTPAGENAME}}|}}}}
{{tt|{{s|{{ROOTPAGENAME}}}}}} → {{tt|{{ {{ROOTPAGENAME}}}}}}
{{tt|{{s|msg:{{ROOTPAGENAME}}}}}} → {{tt|{{msg:{{ROOTPAGENAME}}}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Biologia}}}} → {{tt|{{ {{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Biologia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Historia}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Historia}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Języki świata/Języki germańskie/Angielski}}}} → {{tt|{{ {{ROOTPAGENAME}}|:{{Np|Wikijunior}}:Języki świata/Języki germańskie/Angielski}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Geografia/Mapy polityczne}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Geografia/Mapy polityczne}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Fizyka/Działy fizyki/Fizyka doświadczalna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Talk}}:Szachy/Puzzle/Bezpośredni partnerzy}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Talk}}:Szachy/Puzzle/Bezpośredni partnerzy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior}}:Dinozaury/Apatozaur}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior}}:Dinozaury/Apatozaur}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Category:Ogrodnictwo/{{Np|Template}}y/Pudła}}}} → {{tt|{{ {{ROOTPAGENAME}}|Category:Ogrodnictwo/{{Np|Template}}y/Pudła}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Wikijunior talk}}:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Wikijunior talk}}:Robaki/Błąd tarczy}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}} → {{tt|{{ {{ROOTPAGENAME}}|Wikijunior talk:Robaki/Błąd tarczy}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa/Fizyka jądrowa/Nukleony}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka/Działy matematyki/Matematyka dyskretna}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik/Mechanika kwantowa}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik/Matematyka}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User talk}}:Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|User}}:Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|User}}:Użytkownik}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Template}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik/Geografia/Geografia fizyczna/Góry}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik/Matematyka/Analiza matematyczna/Ciągi}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis/Użytkownik}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module talk}}:Brudnopis}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Module}}:Brudnopis}}}}
----
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project talk}}:Poczekalnia/Konserwacja}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project talk}}:Poczekalnia/Konserwacja}}}}
{{tt|{{s|{{ROOTPAGENAME}}|{{Np|Project}}:Kwestie techniczne/Archiwum kwestii technicznych}}}} → {{tt|{{ {{ROOTPAGENAME}}|{{Np|Project}}:Kwestie techniczne/Archiwum kwestii technicznych}}}}
{{tt|{{s|{{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}} → {{tt|{{ {{ROOTPAGENAME}}|Nauki przyrodnicze:Chemia/Działy chemii/Chemia leków}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Nauki społeczne:Psychologia/Działy psychologii/Dzieci}}}}
{{tt|{{s|{{ROOTPAGENAME}}|:Strona główna}}}} → {{tt|{{ {{ROOTPAGENAME}}|:Strona główna}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony nazw}}
</includeonly>
40ialzwgw9cl2raouilzo6y1k83h0ej
Szablon:Un/opis
10
33236
438794
394772
2022-08-26T16:06:18Z
Persino
2851
/* Użycie */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
Szablon wyświetla tekst podkreślony, zastępuje tag <code><nowiki><u></nowiki></code>, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
{{Pre|{{s|un|jakiś tekst)}}}}
== Przykład ==
<code><nowiki>Druga część zadania zawiera tekst, {{un|który powinien zostać podkreślony}}.</nowiki></code>
Druga część zadania zawiera tekst, {{un|który powinien zostać podkreślony}}.
== Zobacz też ==
*{{s|f*}}
*{{s|f}}
{{BrClear}}
<includeonly>
<!-- DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
[[Kategoria:Szablony dotyczące tekstów|{{PAGENAME}}]]
</includeonly>
nd0ecdez537rx3fqioyqyzldegpzl8u
438795
438794
2022-08-26T16:12:03Z
Persino
2851
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
Szablon wyświetla tekst podkreślony, zastępuje tag {{Code|<nowiki><u></nowiki>}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
{{Pre|{{s|un|jakiś tekst)}}}}
== Przykład ==
{{Code|Druga część zadania zawiera tekst, {{s|un|który powinien zostać podkreślony}}.}}
Druga część zadania zawiera tekst, {{un|który powinien zostać podkreślony}}.
== Zobacz też ==
* {{s|f*}} - szablon służy do formatowania fragmentów w obrębie jednej linijki (jednego akapitu) tekstu,
* {{s|f}} - szablon formatuje tekst w formie obiektu blokowego (tekst wydzielony od pozostałej treści).
{{BrClear}}
<includeonly>
<!-- DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
3ejwrqgcy4y2vmo4ecpuqhxkqm5d6ew
438796
438795
2022-08-26T16:16:48Z
Persino
2851
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
Szablon wyświetla tekst podkreślony, zastępuje tag {{Code|<nowiki><u></nowiki>}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
{{Pre|{{s|un|jakiś tekst)}}}}
== Przykład ==
{{Code|Druga część zadania zawiera tekst, {{s|un|który powinien zostać podkreślony}}.}}
Druga część zadania zawiera tekst, {{un|który powinien zostać podkreślony}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Tekst do podkreślenia.",
"type": "string"
}
},
"description": "Szablon służy, zamiast używania bezpośrednio znacznika <u>, do podkreślania podanego tekstu jako jego pierwszy argument."
}
</templatedata>
== Zobacz też ==
* {{s|f*}} - szablon służy do formatowania fragmentów w obrębie jednej linijki (jednego akapitu) tekstu,
* {{s|f}} - szablon formatuje tekst w formie obiektu blokowego (tekst wydzielony od pozostałej treści).
{{BrClear}}
<includeonly>
<!-- DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
cspy0fibi8sfw7tcnrdhkv18v5icumv
438797
438796
2022-08-26T16:19:38Z
Persino
2851
/* Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY -->
== Użycie ==
Szablon wyświetla tekst podkreślony, zastępuje tag {{Code|<nowiki><u></nowiki>}}, który nie powinien być używany do podkreślonego tekstu ze względu na jego zdeprecjonowanie w HTML 4.01. oraz zmianę znaczenia w HTML 5.
{{Pre|{{s|un|jakiś tekst)}}}}
== Przykład ==
{{Code|Druga część zadania zawiera tekst, {{s|un|który powinien zostać podkreślony}}.}}
Druga część zadania zawiera tekst, {{un|który powinien zostać podkreślony}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Tekst do podkreślenia.",
"type": "string",
"required": true
}
},
"description": "Szablon służy, zamiast używania bezpośrednio znacznika <u>, do podkreślania podanego tekstu jako jego pierwszy argument."
}
</templatedata>
== Zobacz też ==
* {{s|f*}} - szablon służy do formatowania fragmentów w obrębie jednej linijki (jednego akapitu) tekstu,
* {{s|f}} - szablon formatuje tekst w formie obiektu blokowego (tekst wydzielony od pozostałej treści).
{{BrClear}}
<includeonly>
<!-- DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
ecz1g3vmpft6dk4u5h15tdnxluryv4d
Szablon:Przykład użycia szablonu w tabeli
10
33653
438860
414066
2022-08-27T11:23:13Z
Persino
2851
wikitext
text/x-wiki
<includeonly><!--
-->{{Wiersz|styl=display:flex;flex-direction:row;width:100%|<!--
-->{{Komórka|styl=width:70%|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|<!--Przykładowe i nie tylko style start--><templatestyles src="Szablon:Przykład użycia szablonu w tabeli/styles.css" /><!--Przykładowe i nie tylko style koniec-->{{Code|{{{przed|}}}{{#invoke:Ramka|Rozwiń|{{((}}s{{!}}1{{=}}{{(((}}tytuł{{!}}{{((}}Tytuł strony z szablonem{{))}}{{)))}}{{#invoke:Ramka|Powtarzaj|nie rozwiń=tak|{{!}}{{((}}#expr:{{((}}_{{))}}+1{{))}}{{=}}{{(((}}{{((}}_{{))}}{{)))}}}}{{))}}}}{{{po|}}}}}}}<!--
-->{{Komórka|styl=width:30%|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|{{{przed|}}}{{#invoke:Ramka|Rozwiń|{{((}}{{(((}}tytuł{{!}}{{((}}Tytuł strony z szablonem{{))}}{{)))}}{{#invoke:Ramka|Powtarzaj|{{((}}!{{))}}{{((}}#if:{{((}}Dopasuj{{!}}ciąg{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{!}}wzór{{=}}^[%w%s_]*{{=}}{{))}}{{!}}{{(((}}{{((}}_{{))}}{{)))}}
{{!}}{{((}}_{{))}}{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{))}}}}{{))}}}}{{{po|}}}}}<!--
-->{{#if:{{{uwagi|}}}|<!--
-->{{Komórka|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|{{{uwagi}}}}}<!--
-->}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
d7ppd5fsm6tpos1sdssr2hukwmttepo
438862
438860
2022-08-27T11:34:52Z
Persino
2851
wikitext
text/x-wiki
<includeonly><!--
-->{{Wiersz|styl=display:flex;flex-direction:row;width:100%|<!--
-->{{Komórka|styl=max-width:calc( 70% - 10px );width:100%|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|<!--Przykładowe i nie tylko style start--><templatestyles src="Szablon:Przykład użycia szablonu w tabeli/styles.css" /><!--Przykładowe i nie tylko style koniec-->{{Code|{{{przed|}}}{{#invoke:Ramka|Rozwiń|{{((}}s{{!}}1{{=}}{{(((}}tytuł{{!}}{{((}}Tytuł strony z szablonem{{))}}{{)))}}{{#invoke:Ramka|Powtarzaj|nie rozwiń=tak|{{!}}{{((}}#expr:{{((}}_{{))}}+1{{))}}{{=}}{{(((}}{{((}}_{{))}}{{)))}}}}{{))}}}}{{{po|}}}}}}}<!--
-->{{Komórka|styl=max-width:calc( 30% - 10px );width:100%|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|{{{przed|}}}{{#invoke:Ramka|Rozwiń|{{((}}{{(((}}tytuł{{!}}{{((}}Tytuł strony z szablonem{{))}}{{)))}}{{#invoke:Ramka|Powtarzaj|{{((}}!{{))}}{{((}}#if:{{((}}Dopasuj{{!}}ciąg{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{!}}wzór{{=}}^[%w%s_]*{{=}}{{))}}{{!}}{{(((}}{{((}}_{{))}}{{)))}}
{{!}}{{((}}_{{))}}{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{))}}}}{{))}}}}{{{po|}}}}}<!--
-->{{#if:{{{uwagi|}}}|<!--
-->{{Komórka|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|{{{uwagi}}}}}<!--
-->}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
pigrrcv5pc0qvuuq90seccwnx6sap6h
438863
438862
2022-08-27T11:52:01Z
Persino
2851
wikitext
text/x-wiki
<includeonly><!--
-->{{Wiersz|<!--
-->{{Komórka|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|<!--Przykładowe i nie tylko style start--><templatestyles src="Szablon:Przykład użycia szablonu w tabeli/styles.css" /><!--Przykładowe i nie tylko style koniec-->{{Code|{{{przed|}}}{{#invoke:Ramka|Rozwiń|{{((}}s{{!}}1{{=}}{{(((}}tytuł{{!}}{{((}}Tytuł strony z szablonem{{))}}{{)))}}{{#invoke:Ramka|Powtarzaj|nie rozwiń=tak|{{!}}{{((}}#expr:{{((}}_{{))}}+1{{))}}{{=}}{{(((}}{{((}}_{{))}}{{)))}}}}{{))}}}}{{{po|}}}}}}}<!--
-->{{Komórka|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|{{{przed|}}}{{#invoke:Ramka|Rozwiń|{{((}}{{(((}}tytuł{{!}}{{((}}Tytuł strony z szablonem{{))}}{{)))}}{{#invoke:Ramka|Powtarzaj|{{((}}!{{))}}{{((}}#if:{{((}}Dopasuj{{!}}ciąg{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{!}}wzór{{=}}^[%w%s_]*{{=}}{{))}}{{!}}{{(((}}{{((}}_{{))}}{{)))}}
{{!}}{{((}}_{{))}}{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{))}}}}{{))}}}}{{{po|}}}}}<!--
-->{{#if:{{{uwagi|}}}|<!--
-->{{Komórka|klasa=style_szablonu_przykład_użycia_szablonu_w_tabeli|{{{uwagi}}}}}<!--
-->}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
k2e4bkgod8ahjndb3ob5pqh7sybi72m
Szablon:Rtl
10
42520
438835
360972
2022-08-27T09:40:36Z
Persino
2851
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Rtl/styles.css" /><div class="rtl" {{#if:{{{styl|}}}|style="{{{styl}}}"}}>{{{1}}}</div></includeonly><noinclude>{{Dokumentacja}}</noinclude>
caamvw3ei8p3un73gepaevacn9xmiq7
438839
438835
2022-08-27T09:59:06Z
Persino
2851
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Rtl/styles.css" /><div class="rtl" {{#if:{{{styl|}}}|style="{{{styl}}}"}}><bdo>{{{1}}}</bdo></div></includeonly><noinclude>{{Dokumentacja}}</noinclude>
hiq1e24sfgxztd5ntp5mqjv3hwa9oml
438851
438839
2022-08-27T10:26:28Z
Persino
2851
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Rtl/styles.css" />{{Div|klasa=rtl {{{klasa|}}}|styl={{{styl}}}|{{Bdo|{{{1}}}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
k071kd578gf6e2zuqwhxludy7ja7hj0
438854
438851
2022-08-27T10:28:41Z
Persino
2851
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Rtl/styles.css" />{{Div|klasa=rtl {{{klasa|}}}|styl={{{styl|}}}|{{Bdo|{{{1}}}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
aj65mftnqjkw5ng8ace5vi7xsbpdbho
Szablon:Rtl/opis
10
42529
438838
394867
2022-08-27T09:55:52Z
Persino
2851
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* Szablon przyjmuje jeden parametr, zawartość tego parametru jest wyświetlana z prawej do lewej w kontenerze <nowiki><div class="rtl">{{{1}}}</div></nowiki>, który ma rozmiar ustalany automatycznie.
* Szablon ten robi żądaną operację za pomocą stylu: {{LinkSzablon2|Rtl/styles.css}}:
{{ŹródłoCss|{{LuaSubst|Szablon:Rtl/styles.css}}}}
* Wzór szablonu {{s|Rtl|Tekst}}.
* Przykład: {{s|Rtl|Oto jest tekst.}}, i jego wynik na całej szerokości ekranu, poniżej:
{{Pre|{{Rtl|Oto jest tekst.}}}}
== Zobacz też ==
* {{s|Ltr}} - szablon układa tekst z lewej do prawej.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
sk278696njdgoj3sfwo9lu6emqktbze
438840
438838
2022-08-27T09:59:33Z
Persino
2851
/* Użycie */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* Szablon przyjmuje jeden parametr, zawartość tego parametru jest wyświetlana z prawej do lewej w kontenerze <nowiki><div class="rtl"><bdo>{{{1}}}</bdo></div></nowiki>, który ma rozmiar ustalany automatycznie.
* Szablon ten robi żądaną operację za pomocą stylu: {{LinkSzablon2|Rtl/styles.css}}:
{{ŹródłoCss|{{LuaSubst|Szablon:Rtl/styles.css}}}}
* Wzór szablonu {{s|Rtl|Tekst}}.
* Przykład: {{s|Rtl|Oto jest tekst.}}, i jego wynik na całej szerokości ekranu, poniżej:
{{Pre|{{Rtl|Oto jest tekst.}}}}
== Zobacz też ==
* {{s|Ltr}} - szablon układa tekst z lewej do prawej.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
f3orhh18vmi92u9pa6stkg3vm3lolw1
438844
438840
2022-08-27T10:01:22Z
Persino
2851
/* Użycie */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* Szablon przyjmuje jeden parametr, zawartość tego parametru jest wyświetlana z prawej do lewej w kontenerze {{Code|<nowiki><div class="rtl"><bdo>{{{1}}}</bdo></div></nowiki>}}, który ma rozmiar ustalany automatycznie.
* Szablon ten robi żądaną operację za pomocą stylu: {{LinkSzablon2|Rtl/styles.css}}:
{{ŹródłoCss|{{LuaSubst|Szablon:Rtl/styles.css}}}}
* Wzór szablonu {{s|Rtl|Tekst}}.
* Przykład: {{s|Rtl|Oto jest tekst.}}, i jego wynik na całej szerokości ekranu, poniżej:
{{Pre|{{Rtl|Oto jest tekst.}}}}
== Zobacz też ==
* {{s|Ltr}} - szablon układa tekst z lewej do prawej.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
9po315qluklkziwe64rpxq0497glqzz
Moduł:Nazwy
828
46021
438808
433815
2022-08-26T20:05:09Z
Persino
2851
Scribunto
text/plain
local m={};
function ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(przedmiotowa)then
return uchwyt_przestrzeni_nazw.subject;
elseif(dyskusja)then
return uchwyt_przestrzeni_nazw.talk;
else
return uchwyt_przestrzeni_nazw;
end;
end;
local function SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
local aliansy=kanoniczne_modul.aliansy;
function alias_namespace()
local czy;
for _,aliases_start in pairs(uchwyt_przestrzeni_nazw.aliases)do
local aliases=mw.ustring.gsub(aliases_start,"[%s_]+"," ");
czy=czy or (aliansy[aliases] and aliases or nil);
end;
return czy;
end;
local canonicalName=mw.ustring.gsub(uchwyt_przestrzeni_nazw.canonicalName,"[%s_]+"," ");
local name=mw.ustring.gsub(uchwyt_przestrzeni_nazw.name,"[%s_]+"," ");
local pos=(aliansy[canonicalName] and canonicalName or nil)
or (aliansy[name] and name or nil)
or alias_namespace();
if(pos)then return pos;end;
end;
function ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt1,uchwyt2,nazwij_projektem,nazwij_dyskusja_projektu)
if(((uchwyt1.isSubject)and(uchwyt2.isSubject))or((uchwyt1.isTalk)and(uchwyt2.isTalk)))then
if(((uchwyt2.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt2.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt2.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt2);
if(pos)then return pos;end;
if((uchwyt2.canonicalName~=uchwyt2.name)or(uchwyt2.name==""))then
return uchwyt2.canonicalName;
end;
end;
return;
end;
function WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local parametry_modul=require("Module:Parametry");
if(kanoniczna)then
if(uchwyt_przestrzeni_nazw)then
if(((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt_przestrzeni_nazw.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw);
if(pos)then return pos;end;
if(uchwyt_przestrzeni_nazw.name~=uchwyt_przestrzeni_nazw.canonicalName)then return uchwyt_przestrzeni_nazw.canonicalName;end;
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
nazwa_niekanoniczna_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_niekanoniczna_przestrzeni_nazw);
local nazwa_niekanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end );
nazwa_niekanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw2,"[%s_]+","[%s_]");
if(mw.ustring.match(uchwyt_przestrzeni_nazw.name,"^%s*"..nazwa_niekanoniczna_przestrzeni_nazw2.."%s*$"))then
return nazwa_kanoniczna_przestrzeni_nazw;
end;
end;
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
else
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
end;
end;
function PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_glownej=mw.site.namespaces[""];
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function OperacjeMyslikDolny(myslnik,nazwa)
local parametry_modul=require("Module:Parametry");
if(myslnik)then
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+","_");
else
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+"," ");
end;
return mw.getContentLanguage():ucfirst(nazwa2);
end;
function NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_nazwy_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
local nazwa_kanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw,"(.)"
,function (s)
return ((mw.ustring.match(s,"^%a$"))
and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);
end
);
nazwa_kanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw2,"%s+","[%s_]");
if(nazwa_kanoniczna_przestrzeni_nazw2)then
if(mw.ustring.match((nazwa)and nazwa or "","^%s*"..nazwa_kanoniczna_przestrzeni_nazw2.."%s*$"))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_niekanoniczna_nazwy_przestrzeni_nazw];
return uchwyt_przestrzeni_nazw;
end;
end;
end;
return nil;
end;
function DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
if(uchwyt_przestrzeni_nazw2)then
if(kanoniczna)then
local zamiast_kanoniczne=ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt_przestrzeni_nazw,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(zamiast_kanoniczne)then return OperacjeMyslikDolny(myslnik,zamiast_kanoniczne);end;
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(kanoniczna_nazwa)then
return OperacjeMyslikDolny(myslnik,kanoniczna_nazwa);
else
return nil;
end;
else
return OperacjeMyslikDolny(myslnik,uchwyt_przestrzeni_nazw2.name);
end;
else
return nil;
end;
end;
function TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
if((nazwa)and(mw.ustring.match(nazwa,"^%s*[%+%-]?%d+%s*$")))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
return nil;
end;
else
local uchwyt_przestrzeni_nazw=mw.site.namespaces[(nazwa)and nazwa or ""];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik);
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
if(czy_istnieje)then
return nil;
else
return OperacjeMyslikDolny(myslnik,nazwa);
end;
end;
end;
end;
end;
function TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,wyswietlana,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
local parametry_modul=require("Module:Parametry");
if(wyswietlana)then
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
else
local nazwa2=TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
else
return TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
end;
else
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
end;
end;
end;
function m.Np(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa=args.nazwa or args[1] or "";
local przedmiotowa=parametry_modul["CzyTakCiąg"](args.przedmiotowa);
local dyskusja=parametry_modul["CzyTakCiąg"](args.dyskusja);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]);
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local link=parametry_modul["CzyTakCiąg"](args.link);
local id=parametry_modul["CzyTakCiąg"](args.id);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt)
if((przedmiotowa)and(dyskusja))then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
if(((id)and(not link))or(uchwyt))then
local dd;
if((nazwa)and((nazwa=="")
or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))
or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$"))))then
dd="";
else
dd=nazwa;
end;
local num=mw.ustring.match(dd,"^%s*([%+%-]?%d+)%s*$");
dd=tonumber(num) or dd;
local uchwyt_przestrzeni_nazw=mw.site.namespaces[dd];
if((num)and(not uchwyt_przestrzeni_nazw))then
if(uchwyt)then return;end;
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
if(uchwyt_przestrzeni_nazw)then
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(uchwyt)then return uchwyt_przestrzeni_nazw2;end;
if(uchwyt_przestrzeni_nazw2)then
return uchwyt_przestrzeni_nazw2.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,z_myslnikami_dolnymi)
uchwyt_przestrzeni_nazw=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
if(uchwyt)then return uchwyt_przestrzeni_nazw;end;
if(uchwyt_przestrzeni_nazw)then
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
if(link)then
local tabela_przestrzeni_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local uchwyt=m.Np{["nazwa"]=nazwa,
["dyskusja"]=((dyskusja)and "tak" or ""),
["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
["uchwyt"]="tak",
};
if(uchwyt)then
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(true,uchwyt);
local kanoniczna_nazwa2=(uchwyt.canonicalName=="Project" or uchwyt.canonicalName=="Project talk")and uchwyt.canonicalName or nil;
if(kanoniczna_nazwa=="")then kanoniczna_nazwa="(main)";end;
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw;
if(kanoniczna)then
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(main)";
else
if(((uchwyt.canonicalName=="Project")and(nazwij_projektem))or((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.canonicalName;
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=kanoniczna_nazwa;
end;
end
end;
else
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(główna)";
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.name;
end
end;
end;
local strona_dyskusji={"w","Pomoc:Strona dyskusji",};
local nazwa_strony=(dyskusja
or ((not przedmiotowa)
and (not dyskusja)
and ((uchwyt)and(uchwyt.isTalk)))
) and strona_dyskusji
or tabela_przestrzeni_nazw[kanoniczna_nazwa2 or kanoniczna_nazwa];
if(nazwa_strony)then
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=nazwa_strony[1],["strona"]=nazwa_strony[2],["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
elseif(not id)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]="Wikibooks:Przestrzenie nazw",["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,wyswietlana, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
return uzyskana_przetlumaczona_nazwa_przestrzeni_nazw
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
end;
end;
function m.NpDane(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local wiki_modul=require("Module:Wiki");
local klucz_projektu=args["klucz projektu"];
local kod_jezyka=args["kod języka"];
local kod_projektu=args["kod projektu"];
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local nazwa=args.nazwa or args[1] or "";
local dyskusja=args.dyskusja;
local przedmiotowa=args.przedmiotowa;
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local id=parametry_modul["CzyTakCiąg"](args.id);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt);
local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]);
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
----
local link=parametry_modul.CzyTak(args.link);
if(link)then
local wartosc_kanoniczna=m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["wyświetlana"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,}
if(not wartosc_kanoniczna)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local wartosc_oczekiwana=(not id and not kanoniczna) and m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna=kanoniczna,id=id,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["po polsku"]="tak",["wyświetlana"]="tak",["z myślnikami dolnymi"]=z_myslnikami_dolnymi,["nazwij projektem"]=nazwij_projektem,["nazwij dyskusją projektu"]=nazwij_dyskusja_projektu,istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,} or ((kanoniczna and not id) and wartosc_kanoniczna or ((not kanoniczna and id)and m.Np{nazwa=nazwa,id="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,} or nil));
if(not wartosc_oczekiwana)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local pos=not (mw.ustring.match(wartosc_kanoniczna,"^Talk$") or mw.ustring.match(wartosc_kanoniczna," talk$"))
and (tabela_przestrzenii_nazw[wartosc_kanoniczna] or {"w","Pomoc:Przestrzeń nazw"})
or {"w","Pomoc:Strona dyskusji"};
local klucz_projektu2=pos[1];
local strona2=pos[2];
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy")
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona2,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["klucz projektu bazy"]=klucz_projektu2,};
if(not strona)then
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
----
local nazwy_przestrzenie_modul=mw.loadData("Module:Nazwy/przestrzenie");
local tabnp=nazwy_przestrzenie_modul.tabnp
local przestrzenie_nazw=nazwy_przestrzenie_modul.przestrzenie_nazw_projektow;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
--if(not id and not kanoniczna)then
-- if(po_polsku)then kod_jezyka=kod_jezyka_pl;end;
--end;
local tabnp_local=przestrzenie_nazw and przestrzenie_nazw[kod_projektu] or {["wiki"]="Project",};
--local tabnp_jezyk=tabnp_local and tabnp_local[kod_jezyka];
local tabnp2_local_en;
local uzupelnij_en=true;
if(tabnp_local["en"])then
if(not tabnp_local["en"]["Project"])then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
tabnp2_local_en["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",};
uzupelnij_en=false;
end;
if(not tabnp_local["en"]["User"])then
if(not tabnp2_local_en)then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
end;
tabnp2_local_en["User"]={"User","User talk",};
uzupelnij_en=false;
end;
end;
local tabnp_jezyk_en=tabnp_local and (uzupelnij_en and tabnp_local["en"] or tabnp2_local_en) or {["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",},["User"]={"User","User talk",},};
local tabnp_jezyk_zapasowe_pl={["Project"]={"Strona projektu","Dyskusja strony projektu",},["User"]={"Użytkownik","Dyskusja użytkownika",},};
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local jezykowe_projekty=wiki_interwiki_modul.tab_lokalne_jezykowe_siostrzane[kod_projektu]
local poza_jezykowe_projekty=not jezykowe_projekty;
local tabnp_jezyk_pl=tabnp_local and (tabnp_local[kod_jezyka_pl] or tabnp_jezyk_zapasowe_pl);
local tabnp_jezyk=tabnp_local and ((jezykowe_projekty and kod_jezyka~="en") and (tabnp_local[kod_jezyka] or ((not awaryjnie)and tabnp_jezyk_en))) or ((kod_jezyka=="en") and tabnp_jezyk_en or (poza_jezykowe_projekty and tabnp_jezyk_en));
local pozostale_przestrzenie=nazwy_przestrzenie_modul.pozostale_przestrzenie;
local pozostale_przestrzenie_jezyk_en=pozostale_przestrzenie and pozostale_przestrzenie["en"];
local pozostale_przestrzenie_jezyk_pl=pozostale_przestrzenie and (pozostale_przestrzenie[kod_jezyka_pl] or pozostale_przestrzenie_jezyk_en);
local pozostale_przestrzenie_jezyk=pozostale_przestrzenie and (jezykowe_projekty and (pozostale_przestrzenie[kod_jezyka] or ((not awaryjnie)and pozostale_przestrzenie_jezyk_en)))
or ((kod_jezyka=="en") and pozostale_przestrzenie_jezyk_en or (poza_jezykowe_projekty and pozostale_przestrzenie_jezyk_en));
if(uchwyt)then
if(parametry_modul.CzyTak(nazwa))then
local nazwa_kanoniczna=m.NpDane{nazwa=nazwa, kanoniczna="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,awaryjnie=awaryjnie,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kanoniczna)then return;end;
local nazwa_kanoniczna_dyskusja=mw.ustring.match(nazwa_kanoniczna,"%s+[Tt][Aa][Ll][Kk]$") or mw.ustring.match(nazwa_kanoniczna,"^[Tt][Aa][Ll][Kk]$");
if(nazwa_kanoniczna_dyskusja)then
local nazwa_kanoniczna_przedmiotowa,_=mw.ustring.gsub(nazwa_kanoniczna,"%s*[Tt][Aa][Ll][Kk]$","");
local tab_prze=tabnp_jezyk[nazwa_kanoniczna_przedmiotowa] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna_przedmiotowa];
if(not tab_prze)then return nil;end;
return tab_prze[2];
else
local tab_prze=tabnp_jezyk[nazwa_kanoniczna] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna];
if(not tab_prze)then return nil;end;
return tab_prze[1];
end;
else
return parametry_modul["ŁączDwieTabele"](tabnp_jezyk,pozostale_przestrzenie_jezyk);
end;
end;
local nazwa_kan;
local num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$");
if(num)then
nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["id"]=((id)and "tak" or ""),["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kan)then
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
else
if(id or kanoniczna)then return nazwa_kan;end;
end;
else
local main=mw.ustring.match(nazwa,"^%s*(%([Mm][Aa][Ii][Nn]%))%s*$")
if(main)then nazwa="";end;
end;
local nazwa_local=mw.ustring.lower(parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak"});
local function por_prze(nazwa2)
if(type(nazwa2)~="table")then
nazwa2=mw.ustring.lower(nazwa2);
if(nazwa_local==nazwa2)then
return true;
end;
return false;
end;
local pos=nazwa2[1];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
local pos=nazwa2["wyświetlana"];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
if(nazwa2.aliasy)then
for _,value in ipairs(nazwa2.aliasy)do
local nazwas=mw.ustring.lower(value);
if(nazwa_local==nazwas)then
return true;
end;
end;
end;
return false;
end;
local function wyswietlana_nazwa(name)
if(type(name)~="table")then
if(wyswietlana)then
if(name=="")then
if(not po_polsku)then
return "(main)";
else
return "(główna)";
end;
end;
return name;
end;
return name;
end;
if(wyswietlana)then
local element=name[1];
if(element=="")then
if(not po_polsku)then
local pos_wyswietlana=name["wyświetlana"];
if(pos_wyswietlana)then
return pos_wyswietlana;
else
return "(main)";
end;
else
return "(główna)";
end;
end;
return element;
end;
return name[1];
end;
local function wyswietlana_nazwa_kanoniczna(name,wyswietlana)
if(wyswietlana)then
return (name=="")and "(main)" or name;
end;
return name;
end;
if(id or kanoniczna)then
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),id=(id)and"tak" or "",kanoniczna=(kanoniczna)and "tak" or "",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local projekt=tabnp_local and tabnp_local["wiki"];
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Project";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.. " talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return projekt;
else
return "Projekt talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
local tabprojekt=tabnp_jezyk and tabnp_jezyk["Project"];
if(tabprojekt)then
if por_prze(tabprojekt[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk"
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(tabprojekt[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
userprze=tabnp_jezyk and tabnp_jezyk["User"];
if(userprze)then
if por_prze(userprze[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(userprze[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
---
if( pozostale_przestrzenie_jezyk)then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
---
if(tabnp_jezyk)then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif((name~="")and por_prze(name.." talk") or por_prze("Talk"))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{
nazwa=name,
dyskusja=dyskusja,
id="tak",
["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),
}
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and (name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
kanon=tabnp[nazwa];
local nazwa2;
if(not kanon)then
nazwa2=mw.ustring.match(nazwa, "^(.+%w)[%s_]+talk$");
if(nazwa2)then
kanon=tabnp[nazwa2];
elseif(por_prze("Talk"))then
kanon=tabnp[""];
elseif(por_prze(""))then
kanon=tabnp[""];
end;
else
nazwa2=nazwa;
end;
if(kanon)then
if(not id)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(czy_dyskusja)then
return nazwa2.." talk";
elseif(czy_przedmiotowa)then
return nazwa2;
else
return nazwa;
end;
else
return m.Np{nazwa=nazwa2,dyskusja=dyskusja,przedmiotowa=przedmiotowa, id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
if awaryjnie and((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return np;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["id"]="tak",["dyskusja"]=dyskusja,};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["id"]=(id)and"tak" or "",["kanoniczna"]=(kanoniczna)and "tak" or "",["nazwij projektem"]=args["nazwij projektem"],["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
local projekt=tabnp_local and tabnp_local["wiki"];
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["Project"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"];
local function Zwracanie(pos1,pos2,name,numer)
if(po_polsku)then
local pos=name and pos1[name][numer] or (not name and pos1[numer]);
return wyswietlana_nazwa(pos);
end;
local pos=pos2[numer];
return wyswietlana_nazwa(pos);
end;
if((projekt_jezyk)and(not po_polsku))or(po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil, 1);
end;
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1)
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["User"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["User"];
if(projekt_jezyk and not po_polsku)or (po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa)
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
if((tabnp_jezyk and not po_polsku) or (po_polsku and tabnp_jezyk_pl and tabnp_jezyk))then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif ((name~="")and por_prze(name.." talk") or por_prze("Talk")) then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl[name][1],value[1]);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl,value,name,1);
end;
end;
end;
end;
end;
---
if ((pozostale_przestrzenie_jezyk and not po_polsku) or (po_polsku and pozostale_przestrzenie_jezyk_pl and pozostale_przestrzenie_jezyk))then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
end;
end;
end;
---
if awaryjnie and ((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
if(not po_polsku)then
return np2;
else
return m.Np{["nazwa"]=np,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["kanoniczna"]=((po_polsku)and "" or (((kod_jezyka=="en")or(poza_jezykowe_projekty)) and "tak" or "")),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
end;
m["NAZWASERWISU"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local link=PobierzParametr("link");
local za=PobierzParametr("za");
local po=PobierzParametr("po");
local wikipedia=PobierzParametr("wikipedia");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local w_jezyku_wiki=PobierzParametr("w języku wiki");
local bez_znacznikow=PobierzParametr("bez znaczników");
local bez_przetwarzania=PobierzParametr("bez przetwarzania");
local parametry_modul=require("Module:Parametry");
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local lista_projektow=mw.loadData("Module:Nazwy/przestrzenie").lista_projektow;
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local tablica_aliasow_kodow_projektow=wiki_interwiki_modul.tablica_aliasow_kodow_projektow;
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu];
local aliasy=tablica_aliasow_kodow_projektow[url];
local projekt=nil;
for kod,_ in pairs(aliasy)do
projekt=lista_projektow[kod];
if(projekt)then break;end;
end;
if(not projekt)then
local html_modul=require("Module:html");
local adres=html_modul["UrlBezProtokołu"](url);
projekt=mw.ustring.match(adres,"^//([%a%.]+)");
end;
if(not projekt)then
projekt="Wikibooks";
kod_jezyka=kod_jezyka_tego_projektu;
kod_projektu=kod_projektu_tego_projektu;
end;
local wikipedia=parametry_modul.CzyTak(wikipedia);
local link=parametry_modul.CzyTak(link);
local wiki_modul=require("Module:Wiki");
local function Nazwa_projektu()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=projekt,["kod języka"]=kod_jezyka,["kod projektu"]="w",["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]="w",} or projekt;
end;
local function Nazwa_strony_glownej()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=pudelko_modul["Strona główna tego projektu"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]=kod_projektu_tego_projektu,} or pudelko_modul["Strona główna tego projektu"]();
end;
local nazwa_projektu2=Nazwa_projektu();
local nazwa=((link)and (nazwa or (parametry_modul.CzyTak(w_jezyku_wiki)and nazwa_projektu2 or projekt)) or nazwa_projektu2);
if(link)then
local linki_modul=require("Module:Linki");
if(wikipedia)then
if(kod_jezyka==kod_jezyka_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
end;
else
if(kod_jezyka==kod_jezyka_tego_projektu)then
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
else
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
end;
end;
else
return nazwa;
end;
end;
m["NAZWAPRZESTRZENI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_= mw.ustring.gsub(title.nsText,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local np=mw.ustring.match(strona,"^%s*([^:]+)%s*:");
if(not np)then return "";end;
return np;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
return "";
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nazwy_modul=require("Module:Nazwy");
local nstext;
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext) then
return nstext;
else
return "";
end;
end;
m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["PRZESTRZEŃDYSKUSJI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["NAZWASTRONY"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_=mw.ustring.gsub(title.text,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local nazwa_strony=mw.ustring.match(strona,"^%s*[^:]+%s*:%s*(.*[^%s])%s*$");
if(not nazwa_strony)then return mw.getContentLanguage():ucfirst(strona);end;
nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony);
return nazwa_strony;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nstext;
local nazwy_modul=require("Module:Nazwy");
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext)then
local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.*[^%s_])[%s_]*$");
if(not nazwa_jednostki)then nazwa_jednostki="";end;
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
end;
end;
m["BAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame)
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęściTytułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tytul=PobierzParametr(1);
local ktora=PobierzParametr(2);
local czesc_tytulu=mw.ustring.match(tytul,"^%s*([^/]*"..mw.ustring.rep("/[^/]*",ktora-1)..")")
return (czesc_tytulu)and czesc_tytulu or tytul;
end;
m["NAZWAKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=3,};
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki;
end;
m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
local nazw;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/[^/]*/(.*)$");
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
nazw=mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/[^/]*/(.*)$");
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
return nazw or "";
end;
m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
if(artykul=="")then
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
local tytul=mw.ustring.match(nazwa_ksiazki,"([^/]*)$");
return tytul or nazwa_ksiazki;
else
return artykul;
end;
end;
m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
local nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"](frame);
return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul;
end;
function FunkcjaPrzestrzeniNazw(frame,funkcja_nazw)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony=nazwy_modul[funkcja_nazw]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw;
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwa_przestrzeni_nazw;
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
if(mw.ustring.match(pelna_nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=1,};
else
return nazwa_przestrzeni_nazw;
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(pelna_nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=2,};
else
return nazwa_przestrzeni_nazw;
end;
else
return nazwa_przestrzeni_nazw;
end;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
return FunkcjaPrzestrzeniNazw(frame,"PEŁNANAZWASTRONY");
end;
m["NAZWAPRZESTRZENIKSIĄŻKI2"] = function(frame)
return FunkcjaPrzestrzeniNazw(frame,"NAZWASTRONY");
end;
m["NAZWASUBSTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony2=nazwy_modul["NAZWASTRONY"](frame);
return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["SUBNAZWAKSIĄŻKI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["NAZWASUBSTRONY"]{nazwa=nazwy_modul["NAZWAKSIĄŻKI"](frame)};
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony_2,[2]=1,};
end;
return m
r8se5yk0njusaotys6v0py3vdgyaoyg
438809
438808
2022-08-26T20:10:06Z
Persino
2851
Anulowanie wersji 438808 autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
Scribunto
text/plain
local m={};
function ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(przedmiotowa)then
return uchwyt_przestrzeni_nazw.subject;
elseif(dyskusja)then
return uchwyt_przestrzeni_nazw.talk;
else
return uchwyt_przestrzeni_nazw;
end;
end;
local function SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
local aliansy=kanoniczne_modul.aliansy;
function alias_namespace()
local czy;
for _,aliases_start in pairs(uchwyt_przestrzeni_nazw.aliases)do
local aliases=mw.ustring.gsub(aliases_start,"[%s_]+"," ");
czy=czy or (aliansy[aliases] and aliases or nil);
end;
return czy;
end;
local canonicalName=mw.ustring.gsub(uchwyt_przestrzeni_nazw.canonicalName,"[%s_]+"," ");
local name=mw.ustring.gsub(uchwyt_przestrzeni_nazw.name,"[%s_]+"," ");
local pos=(aliansy[canonicalName] and canonicalName or nil)
or (aliansy[name] and name or nil)
or alias_namespace();
if(pos)then return pos;end;
end;
function ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt1,uchwyt2,nazwij_projektem,nazwij_dyskusja_projektu)
if(((uchwyt1.isSubject)and(uchwyt2.isSubject))or((uchwyt1.isTalk)and(uchwyt2.isTalk)))then
if(((uchwyt2.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt2.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt2.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt2);
if(pos)then return pos;end;
if((uchwyt2.canonicalName~=uchwyt2.name)or(uchwyt2.name==""))then
return uchwyt2.canonicalName;
end;
end;
return;
end;
function WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local parametry_modul=require("Module:Parametry");
if(kanoniczna)then
if(uchwyt_przestrzeni_nazw)then
if(((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt_przestrzeni_nazw.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw);
if(pos)then return pos;end;
if(uchwyt_przestrzeni_nazw.name~=uchwyt_przestrzeni_nazw.canonicalName)then return uchwyt_przestrzeni_nazw.canonicalName;end;
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
nazwa_niekanoniczna_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_niekanoniczna_przestrzeni_nazw);
local nazwa_niekanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end );
nazwa_niekanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw2,"[%s_]+","[%s_]");
if(mw.ustring.match(uchwyt_przestrzeni_nazw.name,"^%s*"..nazwa_niekanoniczna_przestrzeni_nazw2.."%s*$"))then
return nazwa_kanoniczna_przestrzeni_nazw;
end;
end;
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
else
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
end;
end;
function PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_glownej=mw.site.namespaces[""];
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function OperacjeMyslikDolny(myslnik,nazwa)
local parametry_modul=require("Module:Parametry");
if(myslnik)then
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+","_");
else
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+"," ");
end;
return mw.getContentLanguage():ucfirst(nazwa2);
end;
function NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_nazwy_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
local nazwa_kanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw,"(.)"
,function (s)
return ((mw.ustring.match(s,"^%a$"))
and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);
end
);
nazwa_kanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw2,"%s+","[%s_]");
if(nazwa_kanoniczna_przestrzeni_nazw2)then
if(mw.ustring.match((nazwa)and nazwa or "","^%s*"..nazwa_kanoniczna_przestrzeni_nazw2.."%s*$"))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_niekanoniczna_nazwy_przestrzeni_nazw];
return uchwyt_przestrzeni_nazw;
end;
end;
end;
return nil;
end;
function DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
if(uchwyt_przestrzeni_nazw2)then
if(kanoniczna)then
local zamiast_kanoniczne=ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt_przestrzeni_nazw,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(zamiast_kanoniczne)then return OperacjeMyslikDolny(myslnik,zamiast_kanoniczne);end;
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(kanoniczna_nazwa)then
return OperacjeMyslikDolny(myslnik,kanoniczna_nazwa);
else
return nil;
end;
else
return OperacjeMyslikDolny(myslnik,uchwyt_przestrzeni_nazw2.name);
end;
else
return nil;
end;
end;
function TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
if((nazwa)and(mw.ustring.match(nazwa,"^%s*[%+%-]?%d+%s*$")))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
return nil;
end;
else
local uchwyt_przestrzeni_nazw=mw.site.namespaces[(nazwa)and nazwa or ""];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik);
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
if(czy_istnieje)then
return nil;
else
return OperacjeMyslikDolny(myslnik,nazwa);
end;
end;
end;
end;
end;
function TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,wyswietlana,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
local parametry_modul=require("Module:Parametry");
if(wyswietlana)then
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
else
local nazwa2=TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
else
return TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
end;
else
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
end;
end;
end;
function m.Np(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa=args.nazwa or args[1] or "";
local przedmiotowa=parametry_modul["CzyTakCiąg"](args.przedmiotowa);
local dyskusja=parametry_modul["CzyTakCiąg"](args.dyskusja);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]);
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local link=parametry_modul["CzyTakCiąg"](args.link);
local id=parametry_modul["CzyTakCiąg"](args.id);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt)
if((przedmiotowa)and(dyskusja))then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
if(((id)and(not link))or(uchwyt))then
local dd;
if((nazwa)and((nazwa=="")
or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))
or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$"))))then
dd="";
else
dd=nazwa;
end;
local num=mw.ustring.match(dd,"^%s*([%+%-]?%d+)%s*$");
dd=tonumber(num) or dd;
local uchwyt_przestrzeni_nazw=mw.site.namespaces[dd];
if((num)and(not uchwyt_przestrzeni_nazw))then
if(uchwyt)then return;end;
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
if(uchwyt_przestrzeni_nazw)then
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(uchwyt)then return uchwyt_przestrzeni_nazw2;end;
if(uchwyt_przestrzeni_nazw2)then
return uchwyt_przestrzeni_nazw2.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,z_myslnikami_dolnymi)
uchwyt_przestrzeni_nazw=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
if(uchwyt)then return uchwyt_przestrzeni_nazw;end;
if(uchwyt_przestrzeni_nazw)then
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
if(link)then
local tabela_przestrzeni_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local uchwyt=m.Np{["nazwa"]=nazwa,
["dyskusja"]=((dyskusja)and "tak" or ""),
["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
["uchwyt"]="tak",
};
if(uchwyt)then
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(true,uchwyt);
local kanoniczna_nazwa2=(uchwyt.canonicalName=="Project" or uchwyt.canonicalName=="Project talk")and uchwyt.canonicalName or nil;
if(kanoniczna_nazwa=="")then kanoniczna_nazwa="(main)";end;
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw;
if(kanoniczna)then
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(main)";
else
if(((uchwyt.canonicalName=="Project")and(nazwij_projektem))or((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.canonicalName;
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=kanoniczna_nazwa;
end;
end
end;
else
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(główna)";
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.name;
end
end;
end;
local strona_dyskusji={"w","Pomoc:Strona dyskusji",};
local nazwa_strony=(dyskusja
or ((not przedmiotowa)
and (not dyskusja)
and ((uchwyt)and(uchwyt.isTalk)))
) and strona_dyskusji
or tabela_przestrzeni_nazw[kanoniczna_nazwa2 or kanoniczna_nazwa];
if(nazwa_strony)then
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=nazwa_strony[1],["strona"]=nazwa_strony[2],["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
elseif(not id)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]="Wikibooks:Przestrzenie nazw",["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,wyswietlana, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
return uzyskana_przetlumaczona_nazwa_przestrzeni_nazw
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
end;
end;
function m.NpDane(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local wiki_modul=require("Module:Wiki");
local klucz_projektu=args["klucz projektu"];
local kod_jezyka=args["kod języka"];
local kod_projektu=args["kod projektu"];
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local nazwa=args.nazwa or args[1] or "";
local dyskusja=args.dyskusja;
local przedmiotowa=args.przedmiotowa;
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local id=parametry_modul["CzyTakCiąg"](args.id);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt);
local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]);
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
----
local link=parametry_modul.CzyTak(args.link);
if(link)then
local wartosc_kanoniczna=m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["wyświetlana"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,}
if(not wartosc_kanoniczna)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local wartosc_oczekiwana=(not id and not kanoniczna) and m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna=kanoniczna,id=id,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["po polsku"]="tak",["wyświetlana"]="tak",["z myślnikami dolnymi"]=z_myslnikami_dolnymi,["nazwij projektem"]=nazwij_projektem,["nazwij dyskusją projektu"]=nazwij_dyskusja_projektu,istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,} or ((kanoniczna and not id) and wartosc_kanoniczna or ((not kanoniczna and id)and m.Np{nazwa=nazwa,id="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,} or nil));
if(not wartosc_oczekiwana)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local pos=not (mw.ustring.match(wartosc_kanoniczna,"^Talk$") or mw.ustring.match(wartosc_kanoniczna," talk$"))
and (tabela_przestrzenii_nazw[wartosc_kanoniczna] or {"w","Pomoc:Przestrzeń nazw"})
or {"w","Pomoc:Strona dyskusji"};
local klucz_projektu2=pos[1];
local strona2=pos[2];
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy")
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona2,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["klucz projektu bazy"]=klucz_projektu2,};
if(not strona)then
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
----
local nazwy_przestrzenie_modul=mw.loadData("Module:Nazwy/przestrzenie");
local tabnp=nazwy_przestrzenie_modul.tabnp
local przestrzenie_nazw=nazwy_przestrzenie_modul.przestrzenie_nazw_projektow;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
--if(not id and not kanoniczna)then
-- if(po_polsku)then kod_jezyka=kod_jezyka_pl;end;
--end;
local tabnp_local=przestrzenie_nazw and przestrzenie_nazw[kod_projektu] or {["wiki"]="Project",};
--local tabnp_jezyk=tabnp_local and tabnp_local[kod_jezyka];
local tabnp2_local_en;
local uzupelnij_en=true;
if(tabnp_local["en"])then
if(not tabnp_local["en"]["Project"])then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
tabnp2_local_en["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",};
uzupelnij_en=false;
end;
if(not tabnp_local["en"]["User"])then
if(not tabnp2_local_en)then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
end;
tabnp2_local_en["User"]={"User","User talk",};
uzupelnij_en=false;
end;
end;
local tabnp_jezyk_en=tabnp_local and (uzupelnij_en and tabnp_local["en"] or tabnp2_local_en) or {["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",},["User"]={"User","User talk",},};
local tabnp_jezyk_zapasowe_pl={["Project"]={"Strona projektu","Dyskusja strony projektu",},["User"]={"Użytkownik","Dyskusja użytkownika",},};
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local jezykowe_projekty=wiki_interwiki_modul.tab_lokalne_jezykowe_siostrzane[kod_projektu]
local poza_jezykowe_projekty=not jezykowe_projekty;
local tabnp_jezyk_pl=tabnp_local and (tabnp_local[kod_jezyka_pl] or tabnp_jezyk_zapasowe_pl);
local tabnp_jezyk=tabnp_local and ((jezykowe_projekty and kod_jezyka~="en") and (tabnp_local[kod_jezyka] or ((not awaryjnie)and tabnp_jezyk_en))) or ((kod_jezyka=="en") and tabnp_jezyk_en or (poza_jezykowe_projekty and tabnp_jezyk_en));
local pozostale_przestrzenie=nazwy_przestrzenie_modul.pozostale_przestrzenie;
local pozostale_przestrzenie_jezyk_en=pozostale_przestrzenie and pozostale_przestrzenie["en"];
local pozostale_przestrzenie_jezyk_pl=pozostale_przestrzenie and (pozostale_przestrzenie[kod_jezyka_pl] or pozostale_przestrzenie_jezyk_en);
local pozostale_przestrzenie_jezyk=pozostale_przestrzenie and (jezykowe_projekty and (pozostale_przestrzenie[kod_jezyka] or ((not awaryjnie)and pozostale_przestrzenie_jezyk_en)))
or ((kod_jezyka=="en") and pozostale_przestrzenie_jezyk_en or (poza_jezykowe_projekty and pozostale_przestrzenie_jezyk_en));
if(uchwyt)then
if(parametry_modul.CzyTak(nazwa))then
local nazwa_kanoniczna=m.NpDane{nazwa=nazwa, kanoniczna="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,awaryjnie=awaryjnie,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kanoniczna)then return;end;
local nazwa_kanoniczna_dyskusja=mw.ustring.match(nazwa_kanoniczna,"%s+[Tt][Aa][Ll][Kk]$") or mw.ustring.match(nazwa_kanoniczna,"^[Tt][Aa][Ll][Kk]$");
if(nazwa_kanoniczna_dyskusja)then
local nazwa_kanoniczna_przedmiotowa,_=mw.ustring.gsub(nazwa_kanoniczna,"%s*[Tt][Aa][Ll][Kk]$","");
local tab_prze=tabnp_jezyk[nazwa_kanoniczna_przedmiotowa] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna_przedmiotowa];
if(not tab_prze)then return nil;end;
return tab_prze[2];
else
local tab_prze=tabnp_jezyk[nazwa_kanoniczna] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna];
if(not tab_prze)then return nil;end;
return tab_prze[1];
end;
else
return parametry_modul["ŁączDwieTabele"](tabnp_jezyk,pozostale_przestrzenie_jezyk);
end;
end;
local nazwa_kan;
local num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$");
if(num)then
nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["id"]=((id)and "tak" or ""),["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kan)then
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
else
if(id or kanoniczna)then return nazwa_kan;end;
end;
else
local main=mw.ustring.match(nazwa,"^%s*(%([Mm][Aa][Ii][Nn]%))%s*$")
if(main)then nazwa="";end;
end;
local nazwa_local=mw.ustring.lower(parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak"});
local function por_prze(nazwa2)
if(type(nazwa2)~="table")then
nazwa2=mw.ustring.lower(nazwa2);
if(nazwa_local==nazwa2)then
return true;
end;
return false;
end;
local pos=nazwa2[1];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
local pos=nazwa2["wyświetlana"];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
if(nazwa2.aliasy)then
for _,value in ipairs(nazwa2.aliasy)do
local nazwas=mw.ustring.lower(value);
if(nazwa_local==nazwas)then
return true;
end;
end;
end;
return false;
end;
local function wyswietlana_nazwa(name)
if(type(name)~="table")then
if(wyswietlana)then
if(name=="")then
if(not po_polsku)then
return "(main)";
else
return "(główna)";
end;
end;
return name;
end;
return name;
end;
if(wyswietlana)then
local element=name[1];
if(element=="")then
if(not po_polsku)then
local pos_wyswietlana=name["wyświetlana"];
if(pos_wyswietlana)then
return pos_wyswietlana;
else
return "(main)";
end;
else
return "(główna)";
end;
end;
return element;
end;
return name[1];
end;
local function wyswietlana_nazwa_kanoniczna(name,wyswietlana)
if(wyswietlana)then
return (name=="")and "(main)" or name;
end;
return name;
end;
if(id or kanoniczna)then
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),id=(id)and"tak" or "",kanoniczna=(kanoniczna)and "tak" or "",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local projekt=tabnp_local and tabnp_local["wiki"];
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Project";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.. " talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return projekt;
else
return "Projekt talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
local tabprojekt=tabnp_jezyk and tabnp_jezyk["Project"];
if(tabprojekt)then
if por_prze(tabprojekt[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk"
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(tabprojekt[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
userprze=tabnp_jezyk and tabnp_jezyk["User"];
if(userprze)then
if por_prze(userprze[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(userprze[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
---
if( pozostale_przestrzenie_jezyk)then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
---
if(tabnp_jezyk)then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif((name~="")and por_prze(name.." talk") or por_prze("Talk"))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{
nazwa=name,
dyskusja=dyskusja,
id="tak",
["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),
}
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and (name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
kanon=tabnp[nazwa];
local nazwa2;
if(not kanon)then
nazwa2=mw.ustring.match(nazwa, "^(.+%w)[%s_]+talk$");
if(nazwa2)then
kanon=tabnp[nazwa2];
elseif(por_prze("Talk"))then
kanon=tabnp[""];
elseif(por_prze(""))then
kanon=tabnp[""];
end;
else
nazwa2=nazwa;
end;
if(kanon)then
if(not id)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(czy_dyskusja)then
return nazwa2.." talk";
elseif(czy_przedmiotowa)then
return nazwa2;
else
return nazwa;
end;
else
return m.Np{nazwa=nazwa2,dyskusja=dyskusja,przedmiotowa=przedmiotowa, id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
if awaryjnie and((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return np;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["id"]="tak",["dyskusja"]=dyskusja,};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["id"]=(id)and"tak" or "",["kanoniczna"]=(kanoniczna)and "tak" or "",["nazwij projektem"]=args["nazwij projektem"],["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
local projekt=tabnp_local and tabnp_local["wiki"];
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["Project"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"];
local function Zwracanie(pos1,pos2,name,numer)
if(po_polsku)then
local pos=name and pos1[name][numer] or (not name and pos1[numer]);
return wyswietlana_nazwa(pos);
end;
local pos=pos2[numer];
return wyswietlana_nazwa(pos);
end;
if((projekt_jezyk)and(not po_polsku))or(po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil, 1);
end;
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1)
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["User"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["User"];
if(projekt_jezyk and not po_polsku)or (po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa)
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
if((tabnp_jezyk and not po_polsku) or (po_polsku and tabnp_jezyk_pl and tabnp_jezyk))then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif ((name~="")and por_prze(name.." talk") or por_prze("Talk")) then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl[name][1],value[1]);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl,value,name,1);
end;
end;
end;
end;
end;
---
if ((pozostale_przestrzenie_jezyk and not po_polsku) or (po_polsku and pozostale_przestrzenie_jezyk_pl and pozostale_przestrzenie_jezyk))then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
end;
end;
end;
---
if awaryjnie and ((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
if(not po_polsku)then
return np2;
else
return m.Np{["nazwa"]=np,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["kanoniczna"]=((po_polsku)and "" or (((kod_jezyka=="en")or(poza_jezykowe_projekty)) and "tak" or "")),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
end;
m["NAZWASERWISU"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local link=PobierzParametr("link");
local za=PobierzParametr("za");
local po=PobierzParametr("po");
local wikipedia=PobierzParametr("wikipedia");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local w_jezyku_wiki=PobierzParametr("w języku wiki");
local bez_znacznikow=PobierzParametr("bez znaczników");
local bez_przetwarzania=PobierzParametr("bez przetwarzania");
local parametry_modul=require("Module:Parametry");
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local lista_projektow=mw.loadData("Module:Nazwy/przestrzenie").lista_projektow;
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local tablica_aliasow_kodow_projektow=wiki_interwiki_modul.tablica_aliasow_kodow_projektow;
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu];
local aliasy=tablica_aliasow_kodow_projektow[url];
local projekt=nil;
for kod,_ in pairs(aliasy)do
projekt=lista_projektow[kod];
if(projekt)then break;end;
end;
if(not projekt)then
local html_modul=require("Module:html");
local adres=html_modul["UrlBezProtokołu"](url);
projekt=mw.ustring.match(adres,"^//([%a%.]+)");
end;
if(not projekt)then
projekt="Wikibooks";
kod_jezyka=kod_jezyka_tego_projektu;
kod_projektu=kod_projektu_tego_projektu;
end;
local wikipedia=parametry_modul.CzyTak(wikipedia);
local link=parametry_modul.CzyTak(link);
local wiki_modul=require("Module:Wiki");
local function Nazwa_projektu()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=projekt,["kod języka"]=kod_jezyka,["kod projektu"]="w",["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]="w",} or projekt;
end;
local function Nazwa_strony_glownej()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=pudelko_modul["Strona główna tego projektu"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]=kod_projektu_tego_projektu,} or pudelko_modul["Strona główna tego projektu"]();
end;
local nazwa_projektu2=Nazwa_projektu();
local nazwa=((link)and (nazwa or (parametry_modul.CzyTak(w_jezyku_wiki)and nazwa_projektu2 or projekt)) or nazwa_projektu2);
if(link)then
local linki_modul=require("Module:Linki");
if(wikipedia)then
if(kod_jezyka==kod_jezyka_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
end;
else
if(kod_jezyka==kod_jezyka_tego_projektu)then
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
else
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
end;
end;
else
return nazwa;
end;
end;
m["NAZWAPRZESTRZENI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_= mw.ustring.gsub(title.nsText,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local np=mw.ustring.match(strona,"^%s*([^:]+)%s*:");
if(not np)then return "";end;
return np;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
return "";
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nazwy_modul=require("Module:Nazwy");
local nstext;
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext) then
return nstext;
else
return "";
end;
end;
m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["PRZESTRZEŃDYSKUSJI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["NAZWASTRONY"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_=mw.ustring.gsub(title.text,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local nazwa_strony=mw.ustring.match(strona,"^%s*[^:]+%s*:%s*(.*[^%s])%s*$");
if(not nazwa_strony)then return mw.getContentLanguage():ucfirst(strona);end;
nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony);
return nazwa_strony;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nstext;
local nazwy_modul=require("Module:Nazwy");
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext)then
local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.*[^%s_])[%s_]*$");
if(not nazwa_jednostki)then nazwa_jednostki="";end;
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
end;
end;
m["BAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame)
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęściTytułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tytul=PobierzParametr(1);
local ktora=PobierzParametr(2);
local czesc_tytulu=mw.ustring.match(tytul,"^%s*([^/]*"..mw.ustring.rep("/[^/]*",ktora-1)..")")
return (czesc_tytulu)and czesc_tytulu or tytul;
end;
m["NAZWAKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=3,};
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki;
end;
m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
local nazw;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/[^/]*/(.*)$");
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
nazw=mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/[^/]*/(.*)$");
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
return nazw or "";
end;
m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
if(artykul=="")then
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
local tytul=mw.ustring.match(nazwa_ksiazki,"([^/]*)$");
return tytul or nazwa_ksiazki;
else
return artykul;
end;
end;
m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
local nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"](frame);
return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw;
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwa_przestrzeni_nazw;
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
if(mw.ustring.match(pelna_nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=1,};
else
return nazwa_przestrzeni_nazw;
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(pelna_nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=2,};
else
return nazwa_przestrzeni_nazw;
end;
else
return nazwa_przestrzeni_nazw;
end;
end;
m["NAZWASUBSTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony2=nazwy_modul["NAZWASTRONY"](frame);
return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["SUBNAZWAKSIĄŻKI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["NAZWASUBSTRONY"]{nazwa=nazwy_modul["NAZWAKSIĄŻKI"](frame)};
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony_2,[2]=1,};
end;
return m
c0ac02apn5l24y3cbe8u7tfg35gn82c
438810
438809
2022-08-26T20:16:11Z
Persino
2851
Scribunto
text/plain
local m={};
function ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(przedmiotowa)then
return uchwyt_przestrzeni_nazw.subject;
elseif(dyskusja)then
return uchwyt_przestrzeni_nazw.talk;
else
return uchwyt_przestrzeni_nazw;
end;
end;
local function SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
local aliansy=kanoniczne_modul.aliansy;
function alias_namespace()
local czy;
for _,aliases_start in pairs(uchwyt_przestrzeni_nazw.aliases)do
local aliases=mw.ustring.gsub(aliases_start,"[%s_]+"," ");
czy=czy or (aliansy[aliases] and aliases or nil);
end;
return czy;
end;
local canonicalName=mw.ustring.gsub(uchwyt_przestrzeni_nazw.canonicalName,"[%s_]+"," ");
local name=mw.ustring.gsub(uchwyt_przestrzeni_nazw.name,"[%s_]+"," ");
local pos=(aliansy[canonicalName] and canonicalName or nil)
or (aliansy[name] and name or nil)
or alias_namespace();
if(pos)then return pos;end;
end;
function ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt1,uchwyt2,nazwij_projektem,nazwij_dyskusja_projektu)
if(((uchwyt1.isSubject)and(uchwyt2.isSubject))or((uchwyt1.isTalk)and(uchwyt2.isTalk)))then
if(((uchwyt2.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt2.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt2.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt2);
if(pos)then return pos;end;
if((uchwyt2.canonicalName~=uchwyt2.name)or(uchwyt2.name==""))then
return uchwyt2.canonicalName;
end;
end;
return;
end;
function WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local parametry_modul=require("Module:Parametry");
if(kanoniczna)then
if(uchwyt_przestrzeni_nazw)then
if(((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt_przestrzeni_nazw.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw);
if(pos)then return pos;end;
if(uchwyt_przestrzeni_nazw.name~=uchwyt_przestrzeni_nazw.canonicalName)then return uchwyt_przestrzeni_nazw.canonicalName;end;
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
nazwa_niekanoniczna_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_niekanoniczna_przestrzeni_nazw);
local nazwa_niekanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end );
nazwa_niekanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw2,"[%s_]+","[%s_]");
if(mw.ustring.match(uchwyt_przestrzeni_nazw.name,"^%s*"..nazwa_niekanoniczna_przestrzeni_nazw2.."%s*$"))then
return nazwa_kanoniczna_przestrzeni_nazw;
end;
end;
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
else
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
end;
end;
function PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_glownej=mw.site.namespaces[""];
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function OperacjeMyslikDolny(myslnik,nazwa)
local parametry_modul=require("Module:Parametry");
if(myslnik)then
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+","_");
else
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+"," ");
end;
return mw.getContentLanguage():ucfirst(nazwa2);
end;
function NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_nazwy_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
local nazwa_kanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw,"(.)"
,function (s)
return ((mw.ustring.match(s,"^%a$"))
and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);
end
);
nazwa_kanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw2,"%s+","[%s_]");
if(nazwa_kanoniczna_przestrzeni_nazw2)then
if(mw.ustring.match((nazwa)and nazwa or "","^%s*"..nazwa_kanoniczna_przestrzeni_nazw2.."%s*$"))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_niekanoniczna_nazwy_przestrzeni_nazw];
return uchwyt_przestrzeni_nazw;
end;
end;
end;
return nil;
end;
function DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
if(uchwyt_przestrzeni_nazw2)then
if(kanoniczna)then
local zamiast_kanoniczne=ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt_przestrzeni_nazw,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(zamiast_kanoniczne)then return OperacjeMyslikDolny(myslnik,zamiast_kanoniczne);end;
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(kanoniczna_nazwa)then
return OperacjeMyslikDolny(myslnik,kanoniczna_nazwa);
else
return nil;
end;
else
return OperacjeMyslikDolny(myslnik,uchwyt_przestrzeni_nazw2.name);
end;
else
return nil;
end;
end;
function TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
if((nazwa)and(mw.ustring.match(nazwa,"^%s*[%+%-]?%d+%s*$")))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
return nil;
end;
else
local uchwyt_przestrzeni_nazw=mw.site.namespaces[(nazwa)and nazwa or ""];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik);
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
if(czy_istnieje)then
return nil;
else
return OperacjeMyslikDolny(myslnik,nazwa);
end;
end;
end;
end;
end;
function TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,wyswietlana,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
local parametry_modul=require("Module:Parametry");
if(wyswietlana)then
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
else
local nazwa2=TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
else
return TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
end;
else
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
end;
end;
end;
function m.Np(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa=args.nazwa or args[1] or "";
local przedmiotowa=parametry_modul["CzyTakCiąg"](args.przedmiotowa);
local dyskusja=parametry_modul["CzyTakCiąg"](args.dyskusja);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]);
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local link=parametry_modul["CzyTakCiąg"](args.link);
local id=parametry_modul["CzyTakCiąg"](args.id);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt)
if((przedmiotowa)and(dyskusja))then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
if(((id)and(not link))or(uchwyt))then
local dd;
if((nazwa)and((nazwa=="")
or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))
or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$"))))then
dd="";
else
dd=nazwa;
end;
local num=mw.ustring.match(dd,"^%s*([%+%-]?%d+)%s*$");
dd=tonumber(num) or dd;
local uchwyt_przestrzeni_nazw=mw.site.namespaces[dd];
if((num)and(not uchwyt_przestrzeni_nazw))then
if(uchwyt)then return;end;
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
if(uchwyt_przestrzeni_nazw)then
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(uchwyt)then return uchwyt_przestrzeni_nazw2;end;
if(uchwyt_przestrzeni_nazw2)then
return uchwyt_przestrzeni_nazw2.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,z_myslnikami_dolnymi)
uchwyt_przestrzeni_nazw=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
if(uchwyt)then return uchwyt_przestrzeni_nazw;end;
if(uchwyt_przestrzeni_nazw)then
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
if(link)then
local tabela_przestrzeni_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local uchwyt=m.Np{["nazwa"]=nazwa,
["dyskusja"]=((dyskusja)and "tak" or ""),
["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
["uchwyt"]="tak",
};
if(uchwyt)then
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(true,uchwyt);
local kanoniczna_nazwa2=(uchwyt.canonicalName=="Project" or uchwyt.canonicalName=="Project talk")and uchwyt.canonicalName or nil;
if(kanoniczna_nazwa=="")then kanoniczna_nazwa="(main)";end;
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw;
if(kanoniczna)then
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(main)";
else
if(((uchwyt.canonicalName=="Project")and(nazwij_projektem))or((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.canonicalName;
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=kanoniczna_nazwa;
end;
end
end;
else
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(główna)";
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.name;
end
end;
end;
local strona_dyskusji={"w","Pomoc:Strona dyskusji",};
local nazwa_strony=(dyskusja
or ((not przedmiotowa)
and (not dyskusja)
and ((uchwyt)and(uchwyt.isTalk)))
) and strona_dyskusji
or tabela_przestrzeni_nazw[kanoniczna_nazwa2 or kanoniczna_nazwa];
if(nazwa_strony)then
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=nazwa_strony[1],["strona"]=nazwa_strony[2],["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
elseif(not id)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]="Wikibooks:Przestrzenie nazw",["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,wyswietlana, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
return uzyskana_przetlumaczona_nazwa_przestrzeni_nazw
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
end;
end;
function m.NpDane(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local wiki_modul=require("Module:Wiki");
local klucz_projektu=args["klucz projektu"];
local kod_jezyka=args["kod języka"];
local kod_projektu=args["kod projektu"];
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local nazwa=args.nazwa or args[1] or "";
local dyskusja=args.dyskusja;
local przedmiotowa=args.przedmiotowa;
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local id=parametry_modul["CzyTakCiąg"](args.id);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt);
local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]);
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
----
local link=parametry_modul.CzyTak(args.link);
if(link)then
local wartosc_kanoniczna=m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["wyświetlana"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,}
if(not wartosc_kanoniczna)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local wartosc_oczekiwana=(not id and not kanoniczna) and m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna=kanoniczna,id=id,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["po polsku"]="tak",["wyświetlana"]="tak",["z myślnikami dolnymi"]=z_myslnikami_dolnymi,["nazwij projektem"]=nazwij_projektem,["nazwij dyskusją projektu"]=nazwij_dyskusja_projektu,istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,} or ((kanoniczna and not id) and wartosc_kanoniczna or ((not kanoniczna and id)and m.Np{nazwa=nazwa,id="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,} or nil));
if(not wartosc_oczekiwana)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local pos=not (mw.ustring.match(wartosc_kanoniczna,"^Talk$") or mw.ustring.match(wartosc_kanoniczna," talk$"))
and (tabela_przestrzenii_nazw[wartosc_kanoniczna] or {"w","Pomoc:Przestrzeń nazw"})
or {"w","Pomoc:Strona dyskusji"};
local klucz_projektu2=pos[1];
local strona2=pos[2];
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy")
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona2,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["klucz projektu bazy"]=klucz_projektu2,};
if(not strona)then
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
----
local nazwy_przestrzenie_modul=mw.loadData("Module:Nazwy/przestrzenie");
local tabnp=nazwy_przestrzenie_modul.tabnp
local przestrzenie_nazw=nazwy_przestrzenie_modul.przestrzenie_nazw_projektow;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
--if(not id and not kanoniczna)then
-- if(po_polsku)then kod_jezyka=kod_jezyka_pl;end;
--end;
local tabnp_local=przestrzenie_nazw and przestrzenie_nazw[kod_projektu] or {["wiki"]="Project",};
--local tabnp_jezyk=tabnp_local and tabnp_local[kod_jezyka];
local tabnp2_local_en;
local uzupelnij_en=true;
if(tabnp_local["en"])then
if(not tabnp_local["en"]["Project"])then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
tabnp2_local_en["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",};
uzupelnij_en=false;
end;
if(not tabnp_local["en"]["User"])then
if(not tabnp2_local_en)then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
end;
tabnp2_local_en["User"]={"User","User talk",};
uzupelnij_en=false;
end;
end;
local tabnp_jezyk_en=tabnp_local and (uzupelnij_en and tabnp_local["en"] or tabnp2_local_en) or {["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",},["User"]={"User","User talk",},};
local tabnp_jezyk_zapasowe_pl={["Project"]={"Strona projektu","Dyskusja strony projektu",},["User"]={"Użytkownik","Dyskusja użytkownika",},};
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local jezykowe_projekty=wiki_interwiki_modul.tab_lokalne_jezykowe_siostrzane[kod_projektu]
local poza_jezykowe_projekty=not jezykowe_projekty;
local tabnp_jezyk_pl=tabnp_local and (tabnp_local[kod_jezyka_pl] or tabnp_jezyk_zapasowe_pl);
local tabnp_jezyk=tabnp_local and ((jezykowe_projekty and kod_jezyka~="en") and (tabnp_local[kod_jezyka] or ((not awaryjnie)and tabnp_jezyk_en))) or ((kod_jezyka=="en") and tabnp_jezyk_en or (poza_jezykowe_projekty and tabnp_jezyk_en));
local pozostale_przestrzenie=nazwy_przestrzenie_modul.pozostale_przestrzenie;
local pozostale_przestrzenie_jezyk_en=pozostale_przestrzenie and pozostale_przestrzenie["en"];
local pozostale_przestrzenie_jezyk_pl=pozostale_przestrzenie and (pozostale_przestrzenie[kod_jezyka_pl] or pozostale_przestrzenie_jezyk_en);
local pozostale_przestrzenie_jezyk=pozostale_przestrzenie and (jezykowe_projekty and (pozostale_przestrzenie[kod_jezyka] or ((not awaryjnie)and pozostale_przestrzenie_jezyk_en)))
or ((kod_jezyka=="en") and pozostale_przestrzenie_jezyk_en or (poza_jezykowe_projekty and pozostale_przestrzenie_jezyk_en));
if(uchwyt)then
if(parametry_modul.CzyTak(nazwa))then
local nazwa_kanoniczna=m.NpDane{nazwa=nazwa, kanoniczna="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,awaryjnie=awaryjnie,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kanoniczna)then return;end;
local nazwa_kanoniczna_dyskusja=mw.ustring.match(nazwa_kanoniczna,"%s+[Tt][Aa][Ll][Kk]$") or mw.ustring.match(nazwa_kanoniczna,"^[Tt][Aa][Ll][Kk]$");
if(nazwa_kanoniczna_dyskusja)then
local nazwa_kanoniczna_przedmiotowa,_=mw.ustring.gsub(nazwa_kanoniczna,"%s*[Tt][Aa][Ll][Kk]$","");
local tab_prze=tabnp_jezyk[nazwa_kanoniczna_przedmiotowa] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna_przedmiotowa];
if(not tab_prze)then return nil;end;
return tab_prze[2];
else
local tab_prze=tabnp_jezyk[nazwa_kanoniczna] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna];
if(not tab_prze)then return nil;end;
return tab_prze[1];
end;
else
return parametry_modul["ŁączDwieTabele"](tabnp_jezyk,pozostale_przestrzenie_jezyk);
end;
end;
local nazwa_kan;
local num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$");
if(num)then
nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["id"]=((id)and "tak" or ""),["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kan)then
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
else
if(id or kanoniczna)then return nazwa_kan;end;
end;
else
local main=mw.ustring.match(nazwa,"^%s*(%([Mm][Aa][Ii][Nn]%))%s*$")
if(main)then nazwa="";end;
end;
local nazwa_local=mw.ustring.lower(parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak"});
local function por_prze(nazwa2)
if(type(nazwa2)~="table")then
nazwa2=mw.ustring.lower(nazwa2);
if(nazwa_local==nazwa2)then
return true;
end;
return false;
end;
local pos=nazwa2[1];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
local pos=nazwa2["wyświetlana"];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
if(nazwa2.aliasy)then
for _,value in ipairs(nazwa2.aliasy)do
local nazwas=mw.ustring.lower(value);
if(nazwa_local==nazwas)then
return true;
end;
end;
end;
return false;
end;
local function wyswietlana_nazwa(name)
if(type(name)~="table")then
if(wyswietlana)then
if(name=="")then
if(not po_polsku)then
return "(main)";
else
return "(główna)";
end;
end;
return name;
end;
return name;
end;
if(wyswietlana)then
local element=name[1];
if(element=="")then
if(not po_polsku)then
local pos_wyswietlana=name["wyświetlana"];
if(pos_wyswietlana)then
return pos_wyswietlana;
else
return "(main)";
end;
else
return "(główna)";
end;
end;
return element;
end;
return name[1];
end;
local function wyswietlana_nazwa_kanoniczna(name,wyswietlana)
if(wyswietlana)then
return (name=="")and "(main)" or name;
end;
return name;
end;
if(id or kanoniczna)then
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),id=(id)and"tak" or "",kanoniczna=(kanoniczna)and "tak" or "",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local projekt=tabnp_local and tabnp_local["wiki"];
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Project";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.. " talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return projekt;
else
return "Projekt talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
local tabprojekt=tabnp_jezyk and tabnp_jezyk["Project"];
if(tabprojekt)then
if por_prze(tabprojekt[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk"
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(tabprojekt[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
userprze=tabnp_jezyk and tabnp_jezyk["User"];
if(userprze)then
if por_prze(userprze[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(userprze[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
---
if( pozostale_przestrzenie_jezyk)then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
---
if(tabnp_jezyk)then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif((name~="")and por_prze(name.." talk") or por_prze("Talk"))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{
nazwa=name,
dyskusja=dyskusja,
id="tak",
["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),
}
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and (name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
kanon=tabnp[nazwa];
local nazwa2;
if(not kanon)then
nazwa2=mw.ustring.match(nazwa, "^(.+%w)[%s_]+talk$");
if(nazwa2)then
kanon=tabnp[nazwa2];
elseif(por_prze("Talk"))then
kanon=tabnp[""];
elseif(por_prze(""))then
kanon=tabnp[""];
end;
else
nazwa2=nazwa;
end;
if(kanon)then
if(not id)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(czy_dyskusja)then
return nazwa2.." talk";
elseif(czy_przedmiotowa)then
return nazwa2;
else
return nazwa;
end;
else
return m.Np{nazwa=nazwa2,dyskusja=dyskusja,przedmiotowa=przedmiotowa, id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
if awaryjnie and((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return np;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["id"]="tak",["dyskusja"]=dyskusja,};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["id"]=(id)and"tak" or "",["kanoniczna"]=(kanoniczna)and "tak" or "",["nazwij projektem"]=args["nazwij projektem"],["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
local projekt=tabnp_local and tabnp_local["wiki"];
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["Project"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"];
local function Zwracanie(pos1,pos2,name,numer)
if(po_polsku)then
local pos=name and pos1[name][numer] or (not name and pos1[numer]);
return wyswietlana_nazwa(pos);
end;
local pos=pos2[numer];
return wyswietlana_nazwa(pos);
end;
if((projekt_jezyk)and(not po_polsku))or(po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil, 1);
end;
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1)
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["User"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["User"];
if(projekt_jezyk and not po_polsku)or (po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa)
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
if((tabnp_jezyk and not po_polsku) or (po_polsku and tabnp_jezyk_pl and tabnp_jezyk))then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif ((name~="")and por_prze(name.." talk") or por_prze("Talk")) then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl[name][1],value[1]);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl,value,name,1);
end;
end;
end;
end;
end;
---
if ((pozostale_przestrzenie_jezyk and not po_polsku) or (po_polsku and pozostale_przestrzenie_jezyk_pl and pozostale_przestrzenie_jezyk))then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
end;
end;
end;
---
if awaryjnie and ((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
if(not po_polsku)then
return np2;
else
return m.Np{["nazwa"]=np,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["kanoniczna"]=((po_polsku)and "" or (((kod_jezyka=="en")or(poza_jezykowe_projekty)) and "tak" or "")),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
end;
m["NAZWASERWISU"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local link=PobierzParametr("link");
local za=PobierzParametr("za");
local po=PobierzParametr("po");
local wikipedia=PobierzParametr("wikipedia");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local w_jezyku_wiki=PobierzParametr("w języku wiki");
local bez_znacznikow=PobierzParametr("bez znaczników");
local bez_przetwarzania=PobierzParametr("bez przetwarzania");
local parametry_modul=require("Module:Parametry");
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local lista_projektow=mw.loadData("Module:Nazwy/przestrzenie").lista_projektow;
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local tablica_aliasow_kodow_projektow=wiki_interwiki_modul.tablica_aliasow_kodow_projektow;
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu];
local aliasy=tablica_aliasow_kodow_projektow[url];
local projekt=nil;
for kod,_ in pairs(aliasy)do
projekt=lista_projektow[kod];
if(projekt)then break;end;
end;
if(not projekt)then
local html_modul=require("Module:html");
local adres=html_modul["UrlBezProtokołu"](url);
projekt=mw.ustring.match(adres,"^//([%a%.]+)");
end;
if(not projekt)then
projekt="Wikibooks";
kod_jezyka=kod_jezyka_tego_projektu;
kod_projektu=kod_projektu_tego_projektu;
end;
local wikipedia=parametry_modul.CzyTak(wikipedia);
local link=parametry_modul.CzyTak(link);
local wiki_modul=require("Module:Wiki");
local function Nazwa_projektu()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=projekt,["kod języka"]=kod_jezyka,["kod projektu"]="w",["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]="w",} or projekt;
end;
local function Nazwa_strony_glownej()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=pudelko_modul["Strona główna tego projektu"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]=kod_projektu_tego_projektu,} or pudelko_modul["Strona główna tego projektu"]();
end;
local nazwa_projektu2=Nazwa_projektu();
local nazwa=((link)and (nazwa or (parametry_modul.CzyTak(w_jezyku_wiki)and nazwa_projektu2 or projekt)) or nazwa_projektu2);
if(link)then
local linki_modul=require("Module:Linki");
if(wikipedia)then
if(kod_jezyka==kod_jezyka_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
end;
else
if(kod_jezyka==kod_jezyka_tego_projektu)then
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
else
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
end;
end;
else
return nazwa;
end;
end;
m["NAZWAPRZESTRZENI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_= mw.ustring.gsub(title.nsText,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local np=mw.ustring.match(strona,"^%s*([^:]+)%s*:");
if(not np)then return "";end;
return np;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
return "";
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nazwy_modul=require("Module:Nazwy");
local nstext;
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext) then
return nstext;
else
return "";
end;
end;
m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["PRZESTRZEŃDYSKUSJI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["NAZWASTRONY"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_=mw.ustring.gsub(title.text,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local nazwa_strony=mw.ustring.match(strona,"^%s*[^:]+%s*:%s*(.*[^%s])%s*$");
if(not nazwa_strony)then return mw.getContentLanguage():ucfirst(strona);end;
nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony);
return nazwa_strony;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nstext;
local nazwy_modul=require("Module:Nazwy");
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext)then
local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.*[^%s_])[%s_]*$");
if(not nazwa_jednostki)then nazwa_jednostki="";end;
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
end;
end;
m["BAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame)
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęściTytułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tytul=PobierzParametr(1);
local ktora=PobierzParametr(2);
local czesc_tytulu=mw.ustring.match(tytul,"^%s*([^/]*"..mw.ustring.rep("/[^/]*",ktora-1)..")")
return (czesc_tytulu)and czesc_tytulu or tytul;
end;
m["NAZWAKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=3,};
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki;
end;
m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
local nazw;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/[^/]*/(.*)$");
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
nazw=mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/[^/]*/(.*)$");
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
return nazw or "";
end;
m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
if(artykul=="")then
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
local tytul=mw.ustring.match(nazwa_ksiazki,"([^/]*)$");
return tytul or nazwa_ksiazki;
else
return artykul;
end;
end;
m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
local nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"](frame);
return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul;
end;
m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw;
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwa_przestrzeni_nazw;
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
if(mw.ustring.match(pelna_nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=1,};
else
return nazwa_przestrzeni_nazw;
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(pelna_nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=2,};
else
return nazwa_przestrzeni_nazw;
end;
else
return nazwa_przestrzeni_nazw;
end;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw;
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return "";
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
else
return "";
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
else
return "";
end;
else
return "";
end;
end;
m["NAZWASUBSTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony2=nazwy_modul["NAZWASTRONY"](frame);
return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["SUBNAZWAKSIĄŻKI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["NAZWASUBSTRONY"]{nazwa=nazwy_modul["NAZWAKSIĄŻKI"](frame)};
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony_2,[2]=1,};
end;
return m
ir4jy7y770txvv9fjojju1eid35xvus
438814
438810
2022-08-27T04:21:55Z
Persino
2851
Scribunto
text/plain
local m={};
function ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(przedmiotowa)then
return uchwyt_przestrzeni_nazw.subject;
elseif(dyskusja)then
return uchwyt_przestrzeni_nazw.talk;
else
return uchwyt_przestrzeni_nazw;
end;
end;
local function SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
local aliansy=kanoniczne_modul.aliansy;
function alias_namespace()
local czy;
for _,aliases_start in pairs(uchwyt_przestrzeni_nazw.aliases)do
local aliases=mw.ustring.gsub(aliases_start,"[%s_]+"," ");
czy=czy or (aliansy[aliases] and aliases or nil);
end;
return czy;
end;
local canonicalName=mw.ustring.gsub(uchwyt_przestrzeni_nazw.canonicalName,"[%s_]+"," ");
local name=mw.ustring.gsub(uchwyt_przestrzeni_nazw.name,"[%s_]+"," ");
local pos=(aliansy[canonicalName] and canonicalName or nil)
or (aliansy[name] and name or nil)
or alias_namespace();
if(pos)then return pos;end;
end;
function ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt1,uchwyt2,nazwij_projektem,nazwij_dyskusja_projektu)
if(((uchwyt1.isSubject)and(uchwyt2.isSubject))or((uchwyt1.isTalk)and(uchwyt2.isTalk)))then
if(((uchwyt2.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt2.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt2.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt2);
if(pos)then return pos;end;
if((uchwyt2.canonicalName~=uchwyt2.name)or(uchwyt2.name==""))then
return uchwyt2.canonicalName;
end;
end;
return;
end;
function WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local parametry_modul=require("Module:Parametry");
if(kanoniczna)then
if(uchwyt_przestrzeni_nazw)then
if(((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt_przestrzeni_nazw.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw);
if(pos)then return pos;end;
if(uchwyt_przestrzeni_nazw.name~=uchwyt_przestrzeni_nazw.canonicalName)then return uchwyt_przestrzeni_nazw.canonicalName;end;
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
nazwa_niekanoniczna_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_niekanoniczna_przestrzeni_nazw);
local nazwa_niekanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end );
nazwa_niekanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw2,"[%s_]+","[%s_]");
if(mw.ustring.match(uchwyt_przestrzeni_nazw.name,"^%s*"..nazwa_niekanoniczna_przestrzeni_nazw2.."%s*$"))then
return nazwa_kanoniczna_przestrzeni_nazw;
end;
end;
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
else
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
end;
end;
function PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_glownej=mw.site.namespaces[""];
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function OperacjeMyslikDolny(myslnik,nazwa)
local parametry_modul=require("Module:Parametry");
if(myslnik)then
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+","_");
else
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+"," ");
end;
return mw.getContentLanguage():ucfirst(nazwa2);
end;
function NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_nazwy_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
local nazwa_kanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw,"(.)"
,function (s)
return ((mw.ustring.match(s,"^%a$"))
and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);
end
);
nazwa_kanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw2,"%s+","[%s_]");
if(nazwa_kanoniczna_przestrzeni_nazw2)then
if(mw.ustring.match((nazwa)and nazwa or "","^%s*"..nazwa_kanoniczna_przestrzeni_nazw2.."%s*$"))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_niekanoniczna_nazwy_przestrzeni_nazw];
return uchwyt_przestrzeni_nazw;
end;
end;
end;
return nil;
end;
function DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
if(uchwyt_przestrzeni_nazw2)then
if(kanoniczna)then
local zamiast_kanoniczne=ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt_przestrzeni_nazw,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(zamiast_kanoniczne)then return OperacjeMyslikDolny(myslnik,zamiast_kanoniczne);end;
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(kanoniczna_nazwa)then
return OperacjeMyslikDolny(myslnik,kanoniczna_nazwa);
else
return nil;
end;
else
return OperacjeMyslikDolny(myslnik,uchwyt_przestrzeni_nazw2.name);
end;
else
return nil;
end;
end;
function TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
if((nazwa)and(mw.ustring.match(nazwa,"^%s*[%+%-]?%d+%s*$")))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
return nil;
end;
else
local uchwyt_przestrzeni_nazw=mw.site.namespaces[(nazwa)and nazwa or ""];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik);
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
if(czy_istnieje)then
return nil;
else
return OperacjeMyslikDolny(myslnik,nazwa);
end;
end;
end;
end;
end;
function TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,wyswietlana,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
local parametry_modul=require("Module:Parametry");
if(wyswietlana)then
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
else
local nazwa2=TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
else
return TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
end;
else
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
end;
end;
end;
function m.Np(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa=args.nazwa or args[1] or "";
local przedmiotowa=parametry_modul["CzyTakCiąg"](args.przedmiotowa);
local dyskusja=parametry_modul["CzyTakCiąg"](args.dyskusja);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]);
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local link=parametry_modul["CzyTakCiąg"](args.link);
local id=parametry_modul["CzyTakCiąg"](args.id);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt)
if((przedmiotowa)and(dyskusja))then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
if(((id)and(not link))or(uchwyt))then
local dd;
if((nazwa)and((nazwa=="")
or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))
or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$"))))then
dd="";
else
dd=nazwa;
end;
local num=mw.ustring.match(dd,"^%s*([%+%-]?%d+)%s*$");
dd=tonumber(num) or dd;
local uchwyt_przestrzeni_nazw=mw.site.namespaces[dd];
if((num)and(not uchwyt_przestrzeni_nazw))then
if(uchwyt)then return;end;
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
if(uchwyt_przestrzeni_nazw)then
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(uchwyt)then return uchwyt_przestrzeni_nazw2;end;
if(uchwyt_przestrzeni_nazw2)then
return uchwyt_przestrzeni_nazw2.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,z_myslnikami_dolnymi)
uchwyt_przestrzeni_nazw=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
if(uchwyt)then return uchwyt_przestrzeni_nazw;end;
if(uchwyt_przestrzeni_nazw)then
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
if(link)then
local tabela_przestrzeni_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local uchwyt=m.Np{["nazwa"]=nazwa,
["dyskusja"]=((dyskusja)and "tak" or ""),
["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
["uchwyt"]="tak",
};
if(uchwyt)then
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(true,uchwyt);
local kanoniczna_nazwa2=(uchwyt.canonicalName=="Project" or uchwyt.canonicalName=="Project talk")and uchwyt.canonicalName or nil;
if(kanoniczna_nazwa=="")then kanoniczna_nazwa="(main)";end;
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw;
if(kanoniczna)then
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(main)";
else
if(((uchwyt.canonicalName=="Project")and(nazwij_projektem))or((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.canonicalName;
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=kanoniczna_nazwa;
end;
end
end;
else
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(główna)";
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.name;
end
end;
end;
local strona_dyskusji={"w","Pomoc:Strona dyskusji",};
local nazwa_strony=(dyskusja
or ((not przedmiotowa)
and (not dyskusja)
and ((uchwyt)and(uchwyt.isTalk)))
) and strona_dyskusji
or tabela_przestrzeni_nazw[kanoniczna_nazwa2 or kanoniczna_nazwa];
if(nazwa_strony)then
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=nazwa_strony[1],["strona"]=nazwa_strony[2],["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
elseif(not id)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]="Wikibooks:Przestrzenie nazw",["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,wyswietlana, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
return uzyskana_przetlumaczona_nazwa_przestrzeni_nazw
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
end;
end;
function m.NpDane(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local wiki_modul=require("Module:Wiki");
local klucz_projektu=args["klucz projektu"];
local kod_jezyka=args["kod języka"];
local kod_projektu=args["kod projektu"];
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local nazwa=args.nazwa or args[1] or "";
local dyskusja=args.dyskusja;
local przedmiotowa=args.przedmiotowa;
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local id=parametry_modul["CzyTakCiąg"](args.id);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt);
local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]);
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
----
local link=parametry_modul.CzyTak(args.link);
if(link)then
local wartosc_kanoniczna=m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["wyświetlana"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,}
if(not wartosc_kanoniczna)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local wartosc_oczekiwana=(not id and not kanoniczna) and m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna=kanoniczna,id=id,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["po polsku"]="tak",["wyświetlana"]="tak",["z myślnikami dolnymi"]=z_myslnikami_dolnymi,["nazwij projektem"]=nazwij_projektem,["nazwij dyskusją projektu"]=nazwij_dyskusja_projektu,istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,} or ((kanoniczna and not id) and wartosc_kanoniczna or ((not kanoniczna and id)and m.Np{nazwa=nazwa,id="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,} or nil));
if(not wartosc_oczekiwana)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local pos=not (mw.ustring.match(wartosc_kanoniczna,"^Talk$") or mw.ustring.match(wartosc_kanoniczna," talk$"))
and (tabela_przestrzenii_nazw[wartosc_kanoniczna] or {"w","Pomoc:Przestrzeń nazw"})
or {"w","Pomoc:Strona dyskusji"};
local klucz_projektu2=pos[1];
local strona2=pos[2];
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy")
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona2,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["klucz projektu bazy"]=klucz_projektu2,};
if(not strona)then
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
----
local nazwy_przestrzenie_modul=mw.loadData("Module:Nazwy/przestrzenie");
local tabnp=nazwy_przestrzenie_modul.tabnp
local przestrzenie_nazw=nazwy_przestrzenie_modul.przestrzenie_nazw_projektow;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
--if(not id and not kanoniczna)then
-- if(po_polsku)then kod_jezyka=kod_jezyka_pl;end;
--end;
local tabnp_local=przestrzenie_nazw and przestrzenie_nazw[kod_projektu] or {["wiki"]="Project",};
--local tabnp_jezyk=tabnp_local and tabnp_local[kod_jezyka];
local tabnp2_local_en;
local uzupelnij_en=true;
if(tabnp_local["en"])then
if(not tabnp_local["en"]["Project"])then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
tabnp2_local_en["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",};
uzupelnij_en=false;
end;
if(not tabnp_local["en"]["User"])then
if(not tabnp2_local_en)then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
end;
tabnp2_local_en["User"]={"User","User talk",};
uzupelnij_en=false;
end;
end;
local tabnp_jezyk_en=tabnp_local and (uzupelnij_en and tabnp_local["en"] or tabnp2_local_en) or {["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",},["User"]={"User","User talk",},};
local tabnp_jezyk_zapasowe_pl={["Project"]={"Strona projektu","Dyskusja strony projektu",},["User"]={"Użytkownik","Dyskusja użytkownika",},};
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local jezykowe_projekty=wiki_interwiki_modul.tab_lokalne_jezykowe_siostrzane[kod_projektu]
local poza_jezykowe_projekty=not jezykowe_projekty;
local tabnp_jezyk_pl=tabnp_local and (tabnp_local[kod_jezyka_pl] or tabnp_jezyk_zapasowe_pl);
local tabnp_jezyk=tabnp_local and ((jezykowe_projekty and kod_jezyka~="en") and (tabnp_local[kod_jezyka] or ((not awaryjnie)and tabnp_jezyk_en))) or ((kod_jezyka=="en") and tabnp_jezyk_en or (poza_jezykowe_projekty and tabnp_jezyk_en));
local pozostale_przestrzenie=nazwy_przestrzenie_modul.pozostale_przestrzenie;
local pozostale_przestrzenie_jezyk_en=pozostale_przestrzenie and pozostale_przestrzenie["en"];
local pozostale_przestrzenie_jezyk_pl=pozostale_przestrzenie and (pozostale_przestrzenie[kod_jezyka_pl] or pozostale_przestrzenie_jezyk_en);
local pozostale_przestrzenie_jezyk=pozostale_przestrzenie and (jezykowe_projekty and (pozostale_przestrzenie[kod_jezyka] or ((not awaryjnie)and pozostale_przestrzenie_jezyk_en)))
or ((kod_jezyka=="en") and pozostale_przestrzenie_jezyk_en or (poza_jezykowe_projekty and pozostale_przestrzenie_jezyk_en));
if(uchwyt)then
if(parametry_modul.CzyTak(nazwa))then
local nazwa_kanoniczna=m.NpDane{nazwa=nazwa, kanoniczna="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,awaryjnie=awaryjnie,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kanoniczna)then return;end;
local nazwa_kanoniczna_dyskusja=mw.ustring.match(nazwa_kanoniczna,"%s+[Tt][Aa][Ll][Kk]$") or mw.ustring.match(nazwa_kanoniczna,"^[Tt][Aa][Ll][Kk]$");
if(nazwa_kanoniczna_dyskusja)then
local nazwa_kanoniczna_przedmiotowa,_=mw.ustring.gsub(nazwa_kanoniczna,"%s*[Tt][Aa][Ll][Kk]$","");
local tab_prze=tabnp_jezyk[nazwa_kanoniczna_przedmiotowa] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna_przedmiotowa];
if(not tab_prze)then return nil;end;
return tab_prze[2];
else
local tab_prze=tabnp_jezyk[nazwa_kanoniczna] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna];
if(not tab_prze)then return nil;end;
return tab_prze[1];
end;
else
return parametry_modul["ŁączDwieTabele"](tabnp_jezyk,pozostale_przestrzenie_jezyk);
end;
end;
local nazwa_kan;
local num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$");
if(num)then
nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["id"]=((id)and "tak" or ""),["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kan)then
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
else
if(id or kanoniczna)then return nazwa_kan;end;
end;
else
local main=mw.ustring.match(nazwa,"^%s*(%([Mm][Aa][Ii][Nn]%))%s*$")
if(main)then nazwa="";end;
end;
local nazwa_local=mw.ustring.lower(parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak"});
local function por_prze(nazwa2)
if(type(nazwa2)~="table")then
nazwa2=mw.ustring.lower(nazwa2);
if(nazwa_local==nazwa2)then
return true;
end;
return false;
end;
local pos=nazwa2[1];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
local pos=nazwa2["wyświetlana"];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
if(nazwa2.aliasy)then
for _,value in ipairs(nazwa2.aliasy)do
local nazwas=mw.ustring.lower(value);
if(nazwa_local==nazwas)then
return true;
end;
end;
end;
return false;
end;
local function wyswietlana_nazwa(name)
if(type(name)~="table")then
if(wyswietlana)then
if(name=="")then
if(not po_polsku)then
return "(main)";
else
return "(główna)";
end;
end;
return name;
end;
return name;
end;
if(wyswietlana)then
local element=name[1];
if(element=="")then
if(not po_polsku)then
local pos_wyswietlana=name["wyświetlana"];
if(pos_wyswietlana)then
return pos_wyswietlana;
else
return "(main)";
end;
else
return "(główna)";
end;
end;
return element;
end;
return name[1];
end;
local function wyswietlana_nazwa_kanoniczna(name,wyswietlana)
if(wyswietlana)then
return (name=="")and "(main)" or name;
end;
return name;
end;
if(id or kanoniczna)then
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),id=(id)and"tak" or "",kanoniczna=(kanoniczna)and "tak" or "",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local projekt=tabnp_local and tabnp_local["wiki"];
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Project";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.. " talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return projekt;
else
return "Projekt talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
local tabprojekt=tabnp_jezyk and tabnp_jezyk["Project"];
if(tabprojekt)then
if por_prze(tabprojekt[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk"
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(tabprojekt[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
userprze=tabnp_jezyk and tabnp_jezyk["User"];
if(userprze)then
if por_prze(userprze[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(userprze[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
---
if( pozostale_przestrzenie_jezyk)then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
---
if(tabnp_jezyk)then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif((name~="")and por_prze(name.." talk") or por_prze("Talk"))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{
nazwa=name,
dyskusja=dyskusja,
id="tak",
["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),
}
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and (name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
kanon=tabnp[nazwa];
local nazwa2;
if(not kanon)then
nazwa2=mw.ustring.match(nazwa, "^(.+%w)[%s_]+talk$");
if(nazwa2)then
kanon=tabnp[nazwa2];
elseif(por_prze("Talk"))then
kanon=tabnp[""];
elseif(por_prze(""))then
kanon=tabnp[""];
end;
else
nazwa2=nazwa;
end;
if(kanon)then
if(not id)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(czy_dyskusja)then
return nazwa2.." talk";
elseif(czy_przedmiotowa)then
return nazwa2;
else
return nazwa;
end;
else
return m.Np{nazwa=nazwa2,dyskusja=dyskusja,przedmiotowa=przedmiotowa, id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
if awaryjnie and((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return np;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["id"]="tak",["dyskusja"]=dyskusja,};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["id"]=(id)and"tak" or "",["kanoniczna"]=(kanoniczna)and "tak" or "",["nazwij projektem"]=args["nazwij projektem"],["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
local projekt=tabnp_local and tabnp_local["wiki"];
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["Project"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"];
local function Zwracanie(pos1,pos2,name,numer)
if(po_polsku)then
local pos=name and pos1[name][numer] or (not name and pos1[numer]);
return wyswietlana_nazwa(pos);
end;
local pos=pos2[numer];
return wyswietlana_nazwa(pos);
end;
if((projekt_jezyk)and(not po_polsku))or(po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil, 1);
end;
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1)
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["User"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["User"];
if(projekt_jezyk and not po_polsku)or (po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa)
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
if((tabnp_jezyk and not po_polsku) or (po_polsku and tabnp_jezyk_pl and tabnp_jezyk))then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif ((name~="")and por_prze(name.." talk") or por_prze("Talk")) then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl[name][1],value[1]);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl,value,name,1);
end;
end;
end;
end;
end;
---
if ((pozostale_przestrzenie_jezyk and not po_polsku) or (po_polsku and pozostale_przestrzenie_jezyk_pl and pozostale_przestrzenie_jezyk))then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
end;
end;
end;
---
if awaryjnie and ((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
if(not po_polsku)then
return np2;
else
return m.Np{["nazwa"]=np,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["kanoniczna"]=((po_polsku)and "" or (((kod_jezyka=="en")or(poza_jezykowe_projekty)) and "tak" or "")),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
end;
m["NAZWASERWISU"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local link=PobierzParametr("link");
local za=PobierzParametr("za");
local po=PobierzParametr("po");
local wikipedia=PobierzParametr("wikipedia");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local w_jezyku_wiki=PobierzParametr("w języku wiki");
local bez_znacznikow=PobierzParametr("bez znaczników");
local bez_przetwarzania=PobierzParametr("bez przetwarzania");
local parametry_modul=require("Module:Parametry");
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local lista_projektow=mw.loadData("Module:Nazwy/przestrzenie").lista_projektow;
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local tablica_aliasow_kodow_projektow=wiki_interwiki_modul.tablica_aliasow_kodow_projektow;
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu];
local aliasy=tablica_aliasow_kodow_projektow[url];
local projekt=nil;
for kod,_ in pairs(aliasy)do
projekt=lista_projektow[kod];
if(projekt)then break;end;
end;
if(not projekt)then
local html_modul=require("Module:html");
local adres=html_modul["UrlBezProtokołu"](url);
projekt=mw.ustring.match(adres,"^//([%a%.]+)");
end;
if(not projekt)then
projekt="Wikibooks";
kod_jezyka=kod_jezyka_tego_projektu;
kod_projektu=kod_projektu_tego_projektu;
end;
local wikipedia=parametry_modul.CzyTak(wikipedia);
local link=parametry_modul.CzyTak(link);
local wiki_modul=require("Module:Wiki");
local function Nazwa_projektu()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=projekt,["kod języka"]=kod_jezyka,["kod projektu"]="w",["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]="w",} or projekt;
end;
local function Nazwa_strony_glownej()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=pudelko_modul["Strona główna tego projektu"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]=kod_projektu_tego_projektu,} or pudelko_modul["Strona główna tego projektu"]();
end;
local nazwa_projektu2=Nazwa_projektu();
local nazwa=((link)and (nazwa or (parametry_modul.CzyTak(w_jezyku_wiki)and nazwa_projektu2 or projekt)) or nazwa_projektu2);
if(link)then
local linki_modul=require("Module:Linki");
if(wikipedia)then
if(kod_jezyka==kod_jezyka_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
end;
else
if(kod_jezyka==kod_jezyka_tego_projektu)then
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
else
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
end;
end;
else
return nazwa;
end;
end;
m["NAZWAPRZESTRZENI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_= mw.ustring.gsub(title.nsText,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local np=mw.ustring.match(strona,"^%s*([^:]+)%s*:");
if(not np)then return "";end;
return np;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
return "";
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nazwy_modul=require("Module:Nazwy");
local nstext;
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext) then
return nstext;
else
return "";
end;
end;
m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["PRZESTRZEŃDYSKUSJI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["NAZWASTRONY"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_=mw.ustring.gsub(title.text,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local nazwa_strony=mw.ustring.match(strona,"^%s*[^:]+%s*:%s*(.*[^%s])%s*$");
if(not nazwa_strony)then return mw.getContentLanguage():ucfirst(strona);end;
nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony);
return nazwa_strony;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nstext;
local nazwy_modul=require("Module:Nazwy");
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext)then
local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.*[^%s_])[%s_]*$");
if(not nazwa_jednostki)then nazwa_jednostki="";end;
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
end;
end;
m["BAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame)
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęściTytułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tytul=PobierzParametr(1);
local ktora=PobierzParametr(2);
local czesc_tytulu=mw.ustring.match(tytul,"^%s*([^/]*"..mw.ustring.rep("/[^/]*",ktora-1)..")")
return (czesc_tytulu)and czesc_tytulu or tytul;
end;
m["NAZWAKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=3,};
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki;
end;
m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
local nazw;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/[^/]*/(.*)$");
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
nazw=mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/[^/]*/(.*)$");
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
return nazw or "";
end;
m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
if(artykul=="")then
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
local tytul=mw.ustring.match(nazwa_ksiazki,"([^/]*)$");
return tytul or nazwa_ksiazki;
else
return artykul;
end;
end;
m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
local nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"](frame);
return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul;
end;
m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw;
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwa_przestrzeni_nazw;
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
if(mw.ustring.match(pelna_nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=1,};
else
return nazwa_przestrzeni_nazw;
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(pelna_nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=2,};
else
return nazwa_przestrzeni_nazw;
end;
else
return nazwa_przestrzeni_nazw;
end;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw;
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return "";
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
else
return "";
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
else
return "";
end;
else
return "";
end;
end;
m["NAZWASUBSTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony2=nazwy_modul["NAZWASTRONY"](frame);
return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["SUBNAZWAKSIĄŻKI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["NAZWASUBSTRONY"]{nazwa=nazwy_modul["NAZWAKSIĄŻKI"](frame)};
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony_2,[2]=1,};
end;
return m
16hvwwv3fyff1mlcfsh2op18olfcf5b
438816
438814
2022-08-27T04:55:04Z
Persino
2851
Scribunto
text/plain
local m={};
function ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(przedmiotowa)then
return uchwyt_przestrzeni_nazw.subject;
elseif(dyskusja)then
return uchwyt_przestrzeni_nazw.talk;
else
return uchwyt_przestrzeni_nazw;
end;
end;
local function SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
local aliansy=kanoniczne_modul.aliansy;
function alias_namespace()
local czy;
for _,aliases_start in pairs(uchwyt_przestrzeni_nazw.aliases)do
local aliases=mw.ustring.gsub(aliases_start,"[%s_]+"," ");
czy=czy or (aliansy[aliases] and aliases or nil);
end;
return czy;
end;
local canonicalName=mw.ustring.gsub(uchwyt_przestrzeni_nazw.canonicalName,"[%s_]+"," ");
local name=mw.ustring.gsub(uchwyt_przestrzeni_nazw.name,"[%s_]+"," ");
local pos=(aliansy[canonicalName] and canonicalName or nil)
or (aliansy[name] and name or nil)
or alias_namespace();
if(pos)then return pos;end;
end;
function ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt1,uchwyt2,nazwij_projektem,nazwij_dyskusja_projektu)
if(((uchwyt1.isSubject)and(uchwyt2.isSubject))or((uchwyt1.isTalk)and(uchwyt2.isTalk)))then
if(((uchwyt2.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt2.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt2.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt2);
if(pos)then return pos;end;
if((uchwyt2.canonicalName~=uchwyt2.name)or(uchwyt2.name==""))then
return uchwyt2.canonicalName;
end;
end;
return;
end;
function WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local parametry_modul=require("Module:Parametry");
if(kanoniczna)then
if(uchwyt_przestrzeni_nazw)then
if(((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt_przestrzeni_nazw.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw);
if(pos)then return pos;end;
if(uchwyt_przestrzeni_nazw.name~=uchwyt_przestrzeni_nazw.canonicalName)then return uchwyt_przestrzeni_nazw.canonicalName;end;
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
nazwa_niekanoniczna_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_niekanoniczna_przestrzeni_nazw);
local nazwa_niekanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end );
nazwa_niekanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw2,"[%s_]+","[%s_]");
if(mw.ustring.match(uchwyt_przestrzeni_nazw.name,"^%s*"..nazwa_niekanoniczna_przestrzeni_nazw2.."%s*$"))then
return nazwa_kanoniczna_przestrzeni_nazw;
end;
end;
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
else
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
end;
end;
function PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_glownej=mw.site.namespaces[""];
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function OperacjeMyslikDolny(myslnik,nazwa)
local parametry_modul=require("Module:Parametry");
if(myslnik)then
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+","_");
else
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+"," ");
end;
return mw.getContentLanguage():ucfirst(nazwa2);
end;
function NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_nazwy_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
local nazwa_kanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw,"(.)"
,function (s)
return ((mw.ustring.match(s,"^%a$"))
and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);
end
);
nazwa_kanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw2,"%s+","[%s_]");
if(nazwa_kanoniczna_przestrzeni_nazw2)then
if(mw.ustring.match((nazwa)and nazwa or "","^%s*"..nazwa_kanoniczna_przestrzeni_nazw2.."%s*$"))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_niekanoniczna_nazwy_przestrzeni_nazw];
return uchwyt_przestrzeni_nazw;
end;
end;
end;
return nil;
end;
function DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
if(uchwyt_przestrzeni_nazw2)then
if(kanoniczna)then
local zamiast_kanoniczne=ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt_przestrzeni_nazw,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(zamiast_kanoniczne)then return OperacjeMyslikDolny(myslnik,zamiast_kanoniczne);end;
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(kanoniczna_nazwa)then
return OperacjeMyslikDolny(myslnik,kanoniczna_nazwa);
else
return nil;
end;
else
return OperacjeMyslikDolny(myslnik,uchwyt_przestrzeni_nazw2.name);
end;
else
return nil;
end;
end;
function TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
if((nazwa)and(mw.ustring.match(nazwa,"^%s*[%+%-]?%d+%s*$")))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
return nil;
end;
else
local uchwyt_przestrzeni_nazw=mw.site.namespaces[(nazwa)and nazwa or ""];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik);
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
if(czy_istnieje)then
return nil;
else
return OperacjeMyslikDolny(myslnik,nazwa);
end;
end;
end;
end;
end;
function TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,wyswietlana,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
local parametry_modul=require("Module:Parametry");
if(wyswietlana)then
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
else
local nazwa2=TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
else
return TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
end;
else
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
end;
end;
end;
function m.Np(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa=args.nazwa or args[1] or "";
local przedmiotowa=parametry_modul["CzyTakCiąg"](args.przedmiotowa);
local dyskusja=parametry_modul["CzyTakCiąg"](args.dyskusja);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]);
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local link=parametry_modul["CzyTakCiąg"](args.link);
local id=parametry_modul["CzyTakCiąg"](args.id);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt)
if((przedmiotowa)and(dyskusja))then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
if(((id)and(not link))or(uchwyt))then
local dd;
if((nazwa)and((nazwa=="")
or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))
or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$"))))then
dd="";
else
dd=nazwa;
end;
local num=mw.ustring.match(dd,"^%s*([%+%-]?%d+)%s*$");
dd=tonumber(num) or dd;
local uchwyt_przestrzeni_nazw=mw.site.namespaces[dd];
if((num)and(not uchwyt_przestrzeni_nazw))then
if(uchwyt)then return;end;
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
if(uchwyt_przestrzeni_nazw)then
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(uchwyt)then return uchwyt_przestrzeni_nazw2;end;
if(uchwyt_przestrzeni_nazw2)then
return uchwyt_przestrzeni_nazw2.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,z_myslnikami_dolnymi)
uchwyt_przestrzeni_nazw=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
if(uchwyt)then return uchwyt_przestrzeni_nazw;end;
if(uchwyt_przestrzeni_nazw)then
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
if(link)then
local tabela_przestrzeni_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local uchwyt=m.Np{["nazwa"]=nazwa,
["dyskusja"]=((dyskusja)and "tak" or ""),
["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
["uchwyt"]="tak",
};
if(uchwyt)then
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(true,uchwyt);
local kanoniczna_nazwa2=(uchwyt.canonicalName=="Project" or uchwyt.canonicalName=="Project talk")and uchwyt.canonicalName or nil;
if(kanoniczna_nazwa=="")then kanoniczna_nazwa="(main)";end;
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw;
if(kanoniczna)then
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(main)";
else
if(((uchwyt.canonicalName=="Project")and(nazwij_projektem))or((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.canonicalName;
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=kanoniczna_nazwa;
end;
end
end;
else
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(główna)";
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.name;
end
end;
end;
local strona_dyskusji={"w","Pomoc:Strona dyskusji",};
local nazwa_strony=(dyskusja
or ((not przedmiotowa)
and (not dyskusja)
and ((uchwyt)and(uchwyt.isTalk)))
) and strona_dyskusji
or tabela_przestrzeni_nazw[kanoniczna_nazwa2 or kanoniczna_nazwa];
if(nazwa_strony)then
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=nazwa_strony[1],["strona"]=nazwa_strony[2],["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
elseif(not id)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]="Wikibooks:Przestrzenie nazw",["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,wyswietlana, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
return uzyskana_przetlumaczona_nazwa_przestrzeni_nazw
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
end;
end;
function m.NpDane(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local wiki_modul=require("Module:Wiki");
local klucz_projektu=args["klucz projektu"];
local kod_jezyka=args["kod języka"];
local kod_projektu=args["kod projektu"];
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local nazwa=args.nazwa or args[1] or "";
local dyskusja=args.dyskusja;
local przedmiotowa=args.przedmiotowa;
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local id=parametry_modul["CzyTakCiąg"](args.id);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt);
local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]);
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
----
local link=parametry_modul.CzyTak(args.link);
if(link)then
local wartosc_kanoniczna=m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["wyświetlana"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,}
if(not wartosc_kanoniczna)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local wartosc_oczekiwana=(not id and not kanoniczna) and m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna=kanoniczna,id=id,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["po polsku"]="tak",["wyświetlana"]="tak",["z myślnikami dolnymi"]=z_myslnikami_dolnymi,["nazwij projektem"]=nazwij_projektem,["nazwij dyskusją projektu"]=nazwij_dyskusja_projektu,istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,} or ((kanoniczna and not id) and wartosc_kanoniczna or ((not kanoniczna and id)and m.Np{nazwa=nazwa,id="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,} or nil));
if(not wartosc_oczekiwana)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local pos=not (mw.ustring.match(wartosc_kanoniczna,"^Talk$") or mw.ustring.match(wartosc_kanoniczna," talk$"))
and (tabela_przestrzenii_nazw[wartosc_kanoniczna] or {"w","Pomoc:Przestrzeń nazw"})
or {"w","Pomoc:Strona dyskusji"};
local klucz_projektu2=pos[1];
local strona2=pos[2];
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy")
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona2,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["klucz projektu bazy"]=klucz_projektu2,};
if(not strona)then
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
----
local nazwy_przestrzenie_modul=mw.loadData("Module:Nazwy/przestrzenie");
local tabnp=nazwy_przestrzenie_modul.tabnp
local przestrzenie_nazw=nazwy_przestrzenie_modul.przestrzenie_nazw_projektow;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
--if(not id and not kanoniczna)then
-- if(po_polsku)then kod_jezyka=kod_jezyka_pl;end;
--end;
local tabnp_local=przestrzenie_nazw and przestrzenie_nazw[kod_projektu] or {["wiki"]="Project",};
--local tabnp_jezyk=tabnp_local and tabnp_local[kod_jezyka];
local tabnp2_local_en;
local uzupelnij_en=true;
if(tabnp_local["en"])then
if(not tabnp_local["en"]["Project"])then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
tabnp2_local_en["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",};
uzupelnij_en=false;
end;
if(not tabnp_local["en"]["User"])then
if(not tabnp2_local_en)then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
end;
tabnp2_local_en["User"]={"User","User talk",};
uzupelnij_en=false;
end;
end;
local tabnp_jezyk_en=tabnp_local and (uzupelnij_en and tabnp_local["en"] or tabnp2_local_en) or {["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",},["User"]={"User","User talk",},};
local tabnp_jezyk_zapasowe_pl={["Project"]={"Strona projektu","Dyskusja strony projektu",},["User"]={"Użytkownik","Dyskusja użytkownika",},};
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local jezykowe_projekty=wiki_interwiki_modul.tab_lokalne_jezykowe_siostrzane[kod_projektu]
local poza_jezykowe_projekty=not jezykowe_projekty;
local tabnp_jezyk_pl=tabnp_local and (tabnp_local[kod_jezyka_pl] or tabnp_jezyk_zapasowe_pl);
local tabnp_jezyk=tabnp_local and ((jezykowe_projekty and kod_jezyka~="en") and (tabnp_local[kod_jezyka] or ((not awaryjnie)and tabnp_jezyk_en))) or ((kod_jezyka=="en") and tabnp_jezyk_en or (poza_jezykowe_projekty and tabnp_jezyk_en));
local pozostale_przestrzenie=nazwy_przestrzenie_modul.pozostale_przestrzenie;
local pozostale_przestrzenie_jezyk_en=pozostale_przestrzenie and pozostale_przestrzenie["en"];
local pozostale_przestrzenie_jezyk_pl=pozostale_przestrzenie and (pozostale_przestrzenie[kod_jezyka_pl] or pozostale_przestrzenie_jezyk_en);
local pozostale_przestrzenie_jezyk=pozostale_przestrzenie and (jezykowe_projekty and (pozostale_przestrzenie[kod_jezyka] or ((not awaryjnie)and pozostale_przestrzenie_jezyk_en)))
or ((kod_jezyka=="en") and pozostale_przestrzenie_jezyk_en or (poza_jezykowe_projekty and pozostale_przestrzenie_jezyk_en));
if(uchwyt)then
if(parametry_modul.CzyTak(nazwa))then
local nazwa_kanoniczna=m.NpDane{nazwa=nazwa, kanoniczna="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,awaryjnie=awaryjnie,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kanoniczna)then return;end;
local nazwa_kanoniczna_dyskusja=mw.ustring.match(nazwa_kanoniczna,"%s+[Tt][Aa][Ll][Kk]$") or mw.ustring.match(nazwa_kanoniczna,"^[Tt][Aa][Ll][Kk]$");
if(nazwa_kanoniczna_dyskusja)then
local nazwa_kanoniczna_przedmiotowa,_=mw.ustring.gsub(nazwa_kanoniczna,"%s*[Tt][Aa][Ll][Kk]$","");
local tab_prze=tabnp_jezyk[nazwa_kanoniczna_przedmiotowa] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna_przedmiotowa];
if(not tab_prze)then return nil;end;
return tab_prze[2];
else
local tab_prze=tabnp_jezyk[nazwa_kanoniczna] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna];
if(not tab_prze)then return nil;end;
return tab_prze[1];
end;
else
return parametry_modul["ŁączDwieTabele"](tabnp_jezyk,pozostale_przestrzenie_jezyk);
end;
end;
local nazwa_kan;
local num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$");
if(num)then
nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["id"]=((id)and "tak" or ""),["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kan)then
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
else
if(id or kanoniczna)then return nazwa_kan;end;
end;
else
local main=mw.ustring.match(nazwa,"^%s*(%([Mm][Aa][Ii][Nn]%))%s*$")
if(main)then nazwa="";end;
end;
local nazwa_local=mw.ustring.lower(parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak"});
local function por_prze(nazwa2)
if(type(nazwa2)~="table")then
nazwa2=mw.ustring.lower(nazwa2);
if(nazwa_local==nazwa2)then
return true;
end;
return false;
end;
local pos=nazwa2[1];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
local pos=nazwa2["wyświetlana"];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
if(nazwa2.aliasy)then
for _,value in ipairs(nazwa2.aliasy)do
local nazwas=mw.ustring.lower(value);
if(nazwa_local==nazwas)then
return true;
end;
end;
end;
return false;
end;
local function wyswietlana_nazwa(name)
if(type(name)~="table")then
if(wyswietlana)then
if(name=="")then
if(not po_polsku)then
return "(main)";
else
return "(główna)";
end;
end;
return name;
end;
return name;
end;
if(wyswietlana)then
local element=name[1];
if(element=="")then
if(not po_polsku)then
local pos_wyswietlana=name["wyświetlana"];
if(pos_wyswietlana)then
return pos_wyswietlana;
else
return "(main)";
end;
else
return "(główna)";
end;
end;
return element;
end;
return name[1];
end;
local function wyswietlana_nazwa_kanoniczna(name,wyswietlana)
if(wyswietlana)then
return (name=="")and "(main)" or name;
end;
return name;
end;
if(id or kanoniczna)then
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),id=(id)and"tak" or "",kanoniczna=(kanoniczna)and "tak" or "",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local projekt=tabnp_local and tabnp_local["wiki"];
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Project";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.. " talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return projekt;
else
return "Projekt talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
local tabprojekt=tabnp_jezyk and tabnp_jezyk["Project"];
if(tabprojekt)then
if por_prze(tabprojekt[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk"
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(tabprojekt[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
userprze=tabnp_jezyk and tabnp_jezyk["User"];
if(userprze)then
if por_prze(userprze[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(userprze[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
---
if( pozostale_przestrzenie_jezyk)then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
---
if(tabnp_jezyk)then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif((name~="")and por_prze(name.." talk") or por_prze("Talk"))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{
nazwa=name,
dyskusja=dyskusja,
id="tak",
["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),
}
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and (name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
kanon=tabnp[nazwa];
local nazwa2;
if(not kanon)then
nazwa2=mw.ustring.match(nazwa, "^(.+%w)[%s_]+talk$");
if(nazwa2)then
kanon=tabnp[nazwa2];
elseif(por_prze("Talk"))then
kanon=tabnp[""];
elseif(por_prze(""))then
kanon=tabnp[""];
end;
else
nazwa2=nazwa;
end;
if(kanon)then
if(not id)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(czy_dyskusja)then
return nazwa2.." talk";
elseif(czy_przedmiotowa)then
return nazwa2;
else
return nazwa;
end;
else
return m.Np{nazwa=nazwa2,dyskusja=dyskusja,przedmiotowa=przedmiotowa, id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
if awaryjnie and((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return np;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["id"]="tak",["dyskusja"]=dyskusja,};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["id"]=(id)and"tak" or "",["kanoniczna"]=(kanoniczna)and "tak" or "",["nazwij projektem"]=args["nazwij projektem"],["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
local projekt=tabnp_local and tabnp_local["wiki"];
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["Project"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"];
local function Zwracanie(pos1,pos2,name,numer)
if(po_polsku)then
local pos=name and pos1[name][numer] or (not name and pos1[numer]);
return wyswietlana_nazwa(pos);
end;
local pos=pos2[numer];
return wyswietlana_nazwa(pos);
end;
if((projekt_jezyk)and(not po_polsku))or(po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil, 1);
end;
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1)
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["User"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["User"];
if(projekt_jezyk and not po_polsku)or (po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa)
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
if((tabnp_jezyk and not po_polsku) or (po_polsku and tabnp_jezyk_pl and tabnp_jezyk))then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif ((name~="")and por_prze(name.." talk") or por_prze("Talk")) then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl[name][1],value[1]);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl,value,name,1);
end;
end;
end;
end;
end;
---
if ((pozostale_przestrzenie_jezyk and not po_polsku) or (po_polsku and pozostale_przestrzenie_jezyk_pl and pozostale_przestrzenie_jezyk))then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
end;
end;
end;
---
if awaryjnie and ((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
if(not po_polsku)then
return np2;
else
return m.Np{["nazwa"]=np,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["kanoniczna"]=((po_polsku)and "" or (((kod_jezyka=="en")or(poza_jezykowe_projekty)) and "tak" or "")),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
end;
m["NAZWASERWISU"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local link=PobierzParametr("link");
local za=PobierzParametr("za");
local po=PobierzParametr("po");
local wikipedia=PobierzParametr("wikipedia");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local w_jezyku_wiki=PobierzParametr("w języku wiki");
local bez_znacznikow=PobierzParametr("bez znaczników");
local bez_przetwarzania=PobierzParametr("bez przetwarzania");
local parametry_modul=require("Module:Parametry");
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local lista_projektow=mw.loadData("Module:Nazwy/przestrzenie").lista_projektow;
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local tablica_aliasow_kodow_projektow=wiki_interwiki_modul.tablica_aliasow_kodow_projektow;
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu];
local aliasy=tablica_aliasow_kodow_projektow[url];
local projekt=nil;
for kod,_ in pairs(aliasy)do
projekt=lista_projektow[kod];
if(projekt)then break;end;
end;
if(not projekt)then
local html_modul=require("Module:html");
local adres=html_modul["UrlBezProtokołu"](url);
projekt=mw.ustring.match(adres,"^//([%a%.]+)");
end;
if(not projekt)then
projekt="Wikibooks";
kod_jezyka=kod_jezyka_tego_projektu;
kod_projektu=kod_projektu_tego_projektu;
end;
local wikipedia=parametry_modul.CzyTak(wikipedia);
local link=parametry_modul.CzyTak(link);
local wiki_modul=require("Module:Wiki");
local function Nazwa_projektu()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=projekt,["kod języka"]=kod_jezyka,["kod projektu"]="w",["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]="w",} or projekt;
end;
local function Nazwa_strony_glownej()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=pudelko_modul["Strona główna tego projektu"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]=kod_projektu_tego_projektu,} or pudelko_modul["Strona główna tego projektu"]();
end;
local nazwa_projektu2=Nazwa_projektu();
local nazwa=((link)and (nazwa or (parametry_modul.CzyTak(w_jezyku_wiki)and nazwa_projektu2 or projekt)) or nazwa_projektu2);
if(link)then
local linki_modul=require("Module:Linki");
if(wikipedia)then
if(kod_jezyka==kod_jezyka_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
end;
else
if(kod_jezyka==kod_jezyka_tego_projektu)then
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
else
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
end;
end;
else
return nazwa;
end;
end;
m["NAZWAPRZESTRZENI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_= mw.ustring.gsub(title.nsText,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local np=mw.ustring.match(strona,"^%s*([^:]+)%s*:");
if(not np)then return "";end;
return np;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
return "";
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nazwy_modul=require("Module:Nazwy");
local nstext;
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext) then
return nstext;
else
return "";
end;
end;
m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["PRZESTRZEŃDYSKUSJI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["NAZWASTRONY"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_=mw.ustring.gsub(title.text,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local nazwa_strony=mw.ustring.match(strona,"^%s*[^:]+%s*:%s*(.*[^%s])%s*$");
if(not nazwa_strony)then return mw.getContentLanguage():ucfirst(strona);end;
nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony);
return nazwa_strony;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nstext;
local nazwy_modul=require("Module:Nazwy");
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext)then
local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.*[^%s_])[%s_]*$");
if(not nazwa_jednostki)then nazwa_jednostki="";end;
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
end;
end;
m["BAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame)
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęściTytułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tytul=PobierzParametr(1);
local ktora=PobierzParametr(2);
local czesc_tytulu=mw.ustring.match(tytul,"^%s*([^/]*"..mw.ustring.rep("/[^/]*",ktora-1)..")")
return (czesc_tytulu)and czesc_tytulu or tytul;
end;
m["NAZWAKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=3,};
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki;
end;
m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
local nazw;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/[^/]*/(.*)$");
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
nazw=mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/[^/]*/(.*)$");
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
return nazw or "";
end;
m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
if(artykul=="")then
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
local tytul=mw.ustring.match(nazwa_ksiazki,"([^/]*)$");
return tytul or nazwa_ksiazki;
else
return artykul;
end;
end;
m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
local nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"](frame);
return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul;
end;
m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw;
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwa_przestrzeni_nazw;
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(mw.ustring.match(pelna_nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=1,};
else
return nazwa_przestrzeni_nazw;
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(mw.ustring.match(pelna_nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=2,};
else
return nazwa_przestrzeni_nazw;
end;
else
return nazwa_przestrzeni_nazw;
end;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return "";
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
else
return "";
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
else
return "";
end;
else
return "";
end;
end;
m["NAZWASUBSTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony2=nazwy_modul["NAZWASTRONY"](frame);
return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["SUBNAZWAKSIĄŻKI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["NAZWASUBSTRONY"]{nazwa=nazwy_modul["NAZWAKSIĄŻKI"](frame)};
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony_2,[2]=1,};
end;
return m
r75r2ov0vc93m08vzfk4lcv98d828j1
438817
438816
2022-08-27T05:05:31Z
Persino
2851
Scribunto
text/plain
local m={};
function ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(przedmiotowa)then
return uchwyt_przestrzeni_nazw.subject;
elseif(dyskusja)then
return uchwyt_przestrzeni_nazw.talk;
else
return uchwyt_przestrzeni_nazw;
end;
end;
local function SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
local aliansy=kanoniczne_modul.aliansy;
function alias_namespace()
local czy;
for _,aliases_start in pairs(uchwyt_przestrzeni_nazw.aliases)do
local aliases=mw.ustring.gsub(aliases_start,"[%s_]+"," ");
czy=czy or (aliansy[aliases] and aliases or nil);
end;
return czy;
end;
local canonicalName=mw.ustring.gsub(uchwyt_przestrzeni_nazw.canonicalName,"[%s_]+"," ");
local name=mw.ustring.gsub(uchwyt_przestrzeni_nazw.name,"[%s_]+"," ");
local pos=(aliansy[canonicalName] and canonicalName or nil)
or (aliansy[name] and name or nil)
or alias_namespace();
if(pos)then return pos;end;
end;
function ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt1,uchwyt2,nazwij_projektem,nazwij_dyskusja_projektu)
if(((uchwyt1.isSubject)and(uchwyt2.isSubject))or((uchwyt1.isTalk)and(uchwyt2.isTalk)))then
if(((uchwyt2.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt2.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt2.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt2);
if(pos)then return pos;end;
if((uchwyt2.canonicalName~=uchwyt2.name)or(uchwyt2.name==""))then
return uchwyt2.canonicalName;
end;
end;
return;
end;
function WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local parametry_modul=require("Module:Parametry");
if(kanoniczna)then
if(uchwyt_przestrzeni_nazw)then
if(((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))
or ((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
return uchwyt_przestrzeni_nazw.canonicalName;
end;
local pos=SkrotyNazwyPrzestrzeniNazw(uchwyt_przestrzeni_nazw);
if(pos)then return pos;end;
if(uchwyt_przestrzeni_nazw.name~=uchwyt_przestrzeni_nazw.canonicalName)then return uchwyt_przestrzeni_nazw.canonicalName;end;
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
nazwa_niekanoniczna_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_niekanoniczna_przestrzeni_nazw);
local nazwa_niekanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end );
nazwa_niekanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_niekanoniczna_przestrzeni_nazw2,"[%s_]+","[%s_]");
if(mw.ustring.match(uchwyt_przestrzeni_nazw.name,"^%s*"..nazwa_niekanoniczna_przestrzeni_nazw2.."%s*$"))then
return nazwa_kanoniczna_przestrzeni_nazw;
end;
end;
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
else
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.canonicalName;
else
return nil;
end;
end;
end;
function PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_glownej=mw.site.namespaces[""];
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu);
end;
function OperacjeMyslikDolny(myslnik,nazwa)
local parametry_modul=require("Module:Parametry");
if(myslnik)then
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+","_");
else
nazwa2,_= mw.ustring.gsub(nazwa,"[%s_]+"," ");
end;
return mw.getContentLanguage():ucfirst(nazwa2);
end;
function NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik)
local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne");
for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_nazwy_przestrzeni_nazw in pairs(kanoniczne_modul.aliansy)do
local nazwa_kanoniczna_przestrzeni_nazw2, _ = mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw,"(.)"
,function (s)
return ((mw.ustring.match(s,"^%a$"))
and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);
end
);
nazwa_kanoniczna_przestrzeni_nazw2=mw.ustring.gsub(nazwa_kanoniczna_przestrzeni_nazw2,"%s+","[%s_]");
if(nazwa_kanoniczna_przestrzeni_nazw2)then
if(mw.ustring.match((nazwa)and nazwa or "","^%s*"..nazwa_kanoniczna_przestrzeni_nazw2.."%s*$"))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_niekanoniczna_nazwy_przestrzeni_nazw];
return uchwyt_przestrzeni_nazw;
end;
end;
end;
return nil;
end;
function DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu)
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw);
if(uchwyt_przestrzeni_nazw2)then
if(kanoniczna)then
local zamiast_kanoniczne=ZamiastWyznaczaniaKanonicznejNazwy(nazwa,uchwyt_przestrzeni_nazw,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(zamiast_kanoniczne)then return OperacjeMyslikDolny(myslnik,zamiast_kanoniczne);end;
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(kanoniczna,uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu);
if(kanoniczna_nazwa)then
return OperacjeMyslikDolny(myslnik,kanoniczna_nazwa);
else
return nil;
end;
else
return OperacjeMyslikDolny(myslnik,uchwyt_przestrzeni_nazw2.name);
end;
else
return nil;
end;
end;
function TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
if((nazwa)and(mw.ustring.match(nazwa,"^%s*[%+%-]?%d+%s*$")))then
local uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
return nil;
end;
else
local uchwyt_przestrzeni_nazw=mw.site.namespaces[(nazwa)and nazwa or ""];
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,myslnik);
if(uchwyt_przestrzeni_nazw)then
return DalszeOperacjeTlumaczeniaNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu);
else
if(czy_istnieje)then
return nil;
else
return OperacjeMyslikDolny(myslnik,nazwa);
end;
end;
end;
end;
end;
function TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,wyswietlana,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje)
local parametry_modul=require("Module:Parametry");
if(wyswietlana)then
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
else
local nazwa2=TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
local nazwa2=PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,nazwij_projektem,nazwij_dyskusja_projektu);
if((nazwa2)and(nazwa2==""))then
if(kanoniczna)then
return "(main)";
else
return "(główna)";
end;
else
return nazwa2;
end;
end;
else
if(parametry_modul.CzyTak(nazwa))then
if((mw.ustring.match(nazwa,"^%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$")))then
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
else
return TlumaczenieNieGlownejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
end;
else
return PrzestrzenGlowna(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu);
end;
end;
end;
function m.Np(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local nazwa=args.nazwa or args[1] or "";
local przedmiotowa=parametry_modul["CzyTakCiąg"](args.przedmiotowa);
local dyskusja=parametry_modul["CzyTakCiąg"](args.dyskusja);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]);
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local link=parametry_modul["CzyTakCiąg"](args.link);
local id=parametry_modul["CzyTakCiąg"](args.id);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt)
if((przedmiotowa)and(dyskusja))then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
if(((id)and(not link))or(uchwyt))then
local dd;
if((nazwa)and((nazwa=="")
or(mw.ustring.match(nazwa,"^%s*%(%s*[Gg][Łł][Óó][Ww][Nn][Aa]%s*%)%s*$"))
or(mw.ustring.match(nazwa,"^%s*%(%s*[Mm][Aa][Ii][Nn]%s*%)%s*$"))))then
dd="";
else
dd=nazwa;
end;
local num=mw.ustring.match(dd,"^%s*([%+%-]?%d+)%s*$");
dd=tonumber(num) or dd;
local uchwyt_przestrzeni_nazw=mw.site.namespaces[dd];
if((num)and(not uchwyt_przestrzeni_nazw))then
if(uchwyt)then return;end;
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
if(uchwyt_przestrzeni_nazw)then
local uchwyt_przestrzeni_nazw2=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw)
if(uchwyt)then return uchwyt_przestrzeni_nazw2;end;
if(uchwyt_przestrzeni_nazw2)then
return uchwyt_przestrzeni_nazw2.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uchwyt_przestrzeni_nazw=NieznanePrzestrzenieNazw(nazwa,przedmiotowa,dyskusja,z_myslnikami_dolnymi)
uchwyt_przestrzeni_nazw=ZnajdzPowiazanePrzestrzenieNazw(przedmiotowa, dyskusja, uchwyt_przestrzeni_nazw);
if(uchwyt)then return uchwyt_przestrzeni_nazw;end;
if(uchwyt_przestrzeni_nazw)then
if(uchwyt_przestrzeni_nazw)then
return uchwyt_przestrzeni_nazw.id;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
if(link)then
local tabela_przestrzeni_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local uchwyt=m.Np{["nazwa"]=nazwa,
["dyskusja"]=((dyskusja)and "tak" or ""),
["przedmiotowa"]=((przedmiotowa)and "tak" or ""),
["uchwyt"]="tak",
};
if(uchwyt)then
local kanoniczna_nazwa=WyznaczKanonicznaNazwa(true,uchwyt);
local kanoniczna_nazwa2=(uchwyt.canonicalName=="Project" or uchwyt.canonicalName=="Project talk")and uchwyt.canonicalName or nil;
if(kanoniczna_nazwa=="")then kanoniczna_nazwa="(main)";end;
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw;
if(kanoniczna)then
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(main)";
else
if(((uchwyt.canonicalName=="Project")and(nazwij_projektem))or((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu)))then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.canonicalName;
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=kanoniczna_nazwa;
end;
end
end;
else
if(id)then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=tostring(uchwyt.id);
else
if(uchwyt.name=="")then
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="(główna)";
else
uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=uchwyt.name;
end
end;
end;
local strona_dyskusji={"w","Pomoc:Strona dyskusji",};
local nazwa_strony=(dyskusja
or ((not przedmiotowa)
and (not dyskusja)
and ((uchwyt)and(uchwyt.isTalk)))
) and strona_dyskusji
or tabela_przestrzeni_nazw[kanoniczna_nazwa2 or kanoniczna_nazwa];
if(nazwa_strony)then
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=nazwa_strony[1],["strona"]=nazwa_strony[2],["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
elseif(not id)then
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]="Wikibooks:Przestrzenie nazw",["nazwa"]=uzyskana_przetlumaczona_nazwa_przestrzeni_nazw,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,},};
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
else
local uzyskana_przetlumaczona_nazwa_przestrzeni_nazw=TlumaczenieNazwPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,z_myslnikami_dolnymi,wyswietlana, nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje);
if(uzyskana_przetlumaczona_nazwa_przestrzeni_nazw)then
return uzyskana_przetlumaczona_nazwa_przestrzeni_nazw
else
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
end;
end;
end;
function m.NpDane(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local wiki_modul=require("Module:Wiki");
local klucz_projektu=args["klucz projektu"];
local kod_jezyka=args["kod języka"];
local kod_projektu=args["kod projektu"];
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local nazwa=args.nazwa or args[1] or "";
local dyskusja=args.dyskusja;
local przedmiotowa=args.przedmiotowa;
local wyswietlana=parametry_modul["CzyTakCiąg"](args["wyświetlana"]);
local id=parametry_modul["CzyTakCiąg"](args.id);
local czy_istnieje=parametry_modul["CzyTakCiąg"](args["istnieje"]);
local wynik_bledu_nietekstowy=parametry_modul["CzyTakCiąg"](args["wynik błędu nietekstowy"]);
local awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie);
local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna);
local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt);
local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]);
nazwa=mw.ustring.gsub(nazwa,"^[%s_:]*","");
nazwa=mw.ustring.gsub(nazwa,"[%s_:]*$","");
nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," ");
----
local link=parametry_modul.CzyTak(args.link);
if(link)then
local wartosc_kanoniczna=m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["wyświetlana"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,}
if(not wartosc_kanoniczna)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local wartosc_oczekiwana=(not id and not kanoniczna) and m.NpDane{nazwa=nazwa,przedmiotowa=przedmiotowa,dyskusja=dyskusja,kanoniczna=kanoniczna,id=id,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu, ["po polsku"]="tak",["wyświetlana"]="tak",["z myślnikami dolnymi"]=z_myslnikami_dolnymi,["nazwij projektem"]=nazwij_projektem,["nazwij dyskusją projektu"]=nazwij_dyskusja_projektu,istnieje=czy_istnieje,["wynik błędu nietekstowy"]=wynik_bledu_nietekstowy,} or ((kanoniczna and not id) and wartosc_kanoniczna or ((not kanoniczna and id)and m.Np{nazwa=nazwa,id="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,} or nil));
if(not wartosc_oczekiwana)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
end;
local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw;
local pos=not (mw.ustring.match(wartosc_kanoniczna,"^Talk$") or mw.ustring.match(wartosc_kanoniczna," talk$"))
and (tabela_przestrzenii_nazw[wartosc_kanoniczna] or {"w","Pomoc:Przestrzeń nazw"})
or {"w","Pomoc:Strona dyskusji"};
local klucz_projektu2=pos[1];
local strona2=pos[2];
local wiki_modul=require("Module:Wiki");
local nazwy_modul=require("Module:Nazwy")
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona2,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["klucz projektu bazy"]=klucz_projektu2,};
if(not strona)then
return require("Module:Linki")["Link wewnętrzny"]{args={["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},};
end;
----
local nazwy_przestrzenie_modul=mw.loadData("Module:Nazwy/przestrzenie");
local tabnp=nazwy_przestrzenie_modul.tabnp
local przestrzenie_nazw=nazwy_przestrzenie_modul.przestrzenie_nazw_projektow;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
--if(not id and not kanoniczna)then
-- if(po_polsku)then kod_jezyka=kod_jezyka_pl;end;
--end;
local tabnp_local=przestrzenie_nazw and przestrzenie_nazw[kod_projektu] or {["wiki"]="Project",};
--local tabnp_jezyk=tabnp_local and tabnp_local[kod_jezyka];
local tabnp2_local_en;
local uzupelnij_en=true;
if(tabnp_local["en"])then
if(not tabnp_local["en"]["Project"])then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
tabnp2_local_en["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",};
uzupelnij_en=false;
end;
if(not tabnp_local["en"]["User"])then
if(not tabnp2_local_en)then
tabnp2_local_en=parametry_modul["KopiujTabelęElementów"](tabnp_local["en"]);
end;
tabnp2_local_en["User"]={"User","User talk",};
uzupelnij_en=false;
end;
end;
local tabnp_jezyk_en=tabnp_local and (uzupelnij_en and tabnp_local["en"] or tabnp2_local_en) or {["Project"]={tabnp_local["wiki"],tabnp_local["wiki"].." talk",},["User"]={"User","User talk",},};
local tabnp_jezyk_zapasowe_pl={["Project"]={"Strona projektu","Dyskusja strony projektu",},["User"]={"Użytkownik","Dyskusja użytkownika",},};
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local jezykowe_projekty=wiki_interwiki_modul.tab_lokalne_jezykowe_siostrzane[kod_projektu]
local poza_jezykowe_projekty=not jezykowe_projekty;
local tabnp_jezyk_pl=tabnp_local and (tabnp_local[kod_jezyka_pl] or tabnp_jezyk_zapasowe_pl);
local tabnp_jezyk=tabnp_local and ((jezykowe_projekty and kod_jezyka~="en") and (tabnp_local[kod_jezyka] or ((not awaryjnie)and tabnp_jezyk_en))) or ((kod_jezyka=="en") and tabnp_jezyk_en or (poza_jezykowe_projekty and tabnp_jezyk_en));
local pozostale_przestrzenie=nazwy_przestrzenie_modul.pozostale_przestrzenie;
local pozostale_przestrzenie_jezyk_en=pozostale_przestrzenie and pozostale_przestrzenie["en"];
local pozostale_przestrzenie_jezyk_pl=pozostale_przestrzenie and (pozostale_przestrzenie[kod_jezyka_pl] or pozostale_przestrzenie_jezyk_en);
local pozostale_przestrzenie_jezyk=pozostale_przestrzenie and (jezykowe_projekty and (pozostale_przestrzenie[kod_jezyka] or ((not awaryjnie)and pozostale_przestrzenie_jezyk_en)))
or ((kod_jezyka=="en") and pozostale_przestrzenie_jezyk_en or (poza_jezykowe_projekty and pozostale_przestrzenie_jezyk_en));
if(uchwyt)then
if(parametry_modul.CzyTak(nazwa))then
local nazwa_kanoniczna=m.NpDane{nazwa=nazwa, kanoniczna="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,awaryjnie=awaryjnie,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",istnieje="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kanoniczna)then return;end;
local nazwa_kanoniczna_dyskusja=mw.ustring.match(nazwa_kanoniczna,"%s+[Tt][Aa][Ll][Kk]$") or mw.ustring.match(nazwa_kanoniczna,"^[Tt][Aa][Ll][Kk]$");
if(nazwa_kanoniczna_dyskusja)then
local nazwa_kanoniczna_przedmiotowa,_=mw.ustring.gsub(nazwa_kanoniczna,"%s*[Tt][Aa][Ll][Kk]$","");
local tab_prze=tabnp_jezyk[nazwa_kanoniczna_przedmiotowa] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna_przedmiotowa];
if(not tab_prze)then return nil;end;
return tab_prze[2];
else
local tab_prze=tabnp_jezyk[nazwa_kanoniczna] or pozostale_przestrzenie_jezyk[nazwa_kanoniczna];
if(not tab_prze)then return nil;end;
return tab_prze[1];
end;
else
return parametry_modul["ŁączDwieTabele"](tabnp_jezyk,pozostale_przestrzenie_jezyk);
end;
end;
local nazwa_kan;
local num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$");
if(num)then
nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["id"]=((id)and "tak" or ""),["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(not nazwa_kan)then
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
else
if(id or kanoniczna)then return nazwa_kan;end;
end;
else
local main=mw.ustring.match(nazwa,"^%s*(%([Mm][Aa][Ii][Nn]%))%s*$")
if(main)then nazwa="";end;
end;
local nazwa_local=mw.ustring.lower(parametry_modul["Odstępy"]{[1]=nazwa,[2]="tak"});
local function por_prze(nazwa2)
if(type(nazwa2)~="table")then
nazwa2=mw.ustring.lower(nazwa2);
if(nazwa_local==nazwa2)then
return true;
end;
return false;
end;
local pos=nazwa2[1];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
local pos=nazwa2["wyświetlana"];
if(pos)then
local nazwad=mw.ustring.lower(pos);
if(nazwa_local==nazwad)then return true;end;
end;
if(nazwa2.aliasy)then
for _,value in ipairs(nazwa2.aliasy)do
local nazwas=mw.ustring.lower(value);
if(nazwa_local==nazwas)then
return true;
end;
end;
end;
return false;
end;
local function wyswietlana_nazwa(name)
if(type(name)~="table")then
if(wyswietlana)then
if(name=="")then
if(not po_polsku)then
return "(main)";
else
return "(główna)";
end;
end;
return name;
end;
return name;
end;
if(wyswietlana)then
local element=name[1];
if(element=="")then
if(not po_polsku)then
local pos_wyswietlana=name["wyświetlana"];
if(pos_wyswietlana)then
return pos_wyswietlana;
else
return "(main)";
end;
else
return "(główna)";
end;
end;
return element;
end;
return name[1];
end;
local function wyswietlana_nazwa_kanoniczna(name,wyswietlana)
if(wyswietlana)then
return (name=="")and "(main)" or name;
end;
return name;
end;
if(id or kanoniczna)then
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),id=(id)and"tak" or "",kanoniczna=(kanoniczna)and "tak" or "",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local projekt=tabnp_local and tabnp_local["wiki"];
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Project";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.. " talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return projekt;
else
return "Projekt talk";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
local tabprojekt=tabnp_jezyk and tabnp_jezyk["Project"];
if(tabprojekt)then
if por_prze(tabprojekt[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_dyskusja)then
return "Project";
else
return "Project talk";
end;
elseif(nazwij_projektem)then
if(not czy_dyskusja)then
return "Project";
else
return projekt.." talk"
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_dyskusja)then
return projekt;
else
return "Project talk";
end;
else
if(not czy_dyskusja)then
return projekt;
else
return projekt.." talk";
end;
end
else
return m.Np{nazwa="Project",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
elseif por_prze(tabprojekt[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
local nazwij_projektem=parametry_modul["CzyTakCiąg"](args["nazwij projektem"]);
local nazwij_dyskusja_projektu=parametry_modul["CzyTakCiąg"](args["nazwij dyskusją projektu"]);
if(not id)then
if((nazwij_projektem)and(nazwij_dyskusja_projektu))then
if(not czy_przedmiotowa)then
return "Project talk";
else
return "Project";
end;
elseif(nazwij_projektem)then
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return "Projekt";
end;
elseif(nazwij_dyskusja_projektu)then
if(not czy_przedmiotowa)then
return "Project talk";
else
return projekt;
end;
else
if(not czy_przedmiotowa)then
return projekt.." talk";
else
return projekt;
end;
end
else
return m.Np{nazwa="Project talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end
end;
end;
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
userprze=tabnp_jezyk and tabnp_jezyk["User"];
if(userprze)then
if por_prze(userprze[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return "User";
else
return "User talk";
end;
else
return m.Np{nazwa="User",dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(userprze[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
return "User talk";
else
return "User";
end;
else
return m.Np{nazwa="User talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
---
if( pozostale_przestrzenie_jezyk)then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
else
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return name.." talk";
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa_kanoniczna(name,wyswietlana);
end;
else
return m.Np{nazwa=name.." talk",przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
---
if(tabnp_jezyk)then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{nazwa=name,dyskusja=dyskusja,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif((name~="")and por_prze(name.." talk") or por_prze("Talk"))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return wyswietlana_nazwa(name);
else
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
else
return m.Np{
nazwa=name,
dyskusja=dyskusja,
id="tak",
["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),
}
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(not czy_przedmiotowa)then
if(value[2])then
return ((name~="")and (name.." talk") or "Talk");
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return wyswietlana_nazwa(name);
end;
else
return m.Np{nazwa=((name~="")and (name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
kanon=tabnp[nazwa];
local nazwa2;
if(not kanon)then
nazwa2=mw.ustring.match(nazwa, "^(.+%w)[%s_]+talk$");
if(nazwa2)then
kanon=tabnp[nazwa2];
elseif(por_prze("Talk"))then
kanon=tabnp[""];
elseif(por_prze(""))then
kanon=tabnp[""];
end;
else
nazwa2=nazwa;
end;
if(kanon)then
if(not id)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not id)then
if(czy_dyskusja)then
return nazwa2.." talk";
elseif(czy_przedmiotowa)then
return nazwa2;
else
return nazwa;
end;
else
return m.Np{nazwa=nazwa2,dyskusja=dyskusja,przedmiotowa=przedmiotowa, id="tak",["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
if awaryjnie and((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not id)then
if(not czy_dyskusja)then
return np;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["id"]="tak",["dyskusja"]=dyskusja,};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["id"]=(id)and"tak" or "",["kanoniczna"]=(kanoniczna)and "tak" or "",["nazwij projektem"]=args["nazwij projektem"],["nazwij dyskusją projektu"]=args["nazwij dyskusją projektu"],["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
if(awaryjnie)then
if por_prze("")then
return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),};
end;
end;
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
local projekt=tabnp_local and tabnp_local["wiki"];
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["Project"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"];
local function Zwracanie(pos1,pos2,name,numer)
if(po_polsku)then
local pos=name and pos1[name][numer] or (not name and pos1[numer]);
return wyswietlana_nazwa(pos);
end;
local pos=pos2[numer];
return wyswietlana_nazwa(pos);
end;
if((projekt_jezyk)and(not po_polsku))or(po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if(projekt)then
if por_prze(projekt)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil, 1);
end;
end;
end;
if por_prze("Project")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("Project talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1)
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
local projekt_jezyk=tabnp_jezyk and tabnp_jezyk["User"];
local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["User"];
if(projekt_jezyk and not po_polsku)or (po_polsku and projekt_jezyk_pl and projekt_jezyk)then
if por_prze("User")then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze("User talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa)
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
if por_prze(projekt_jezyk[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
end;
elseif por_prze(projekt_jezyk[2])then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,2);
else
return Zwracanie(projekt_jezyk_pl,projekt_jezyk,nil,1);
end;
end;
end;
if((tabnp_jezyk and not po_polsku) or (po_polsku and tabnp_jezyk_pl and tabnp_jezyk))then
for name,value in pairs(tabnp_jezyk)do
if((name~="Project")and(name~="User"))then
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif ((name~="")and por_prze(name.." talk") or por_prze("Talk")) then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl[name][1],value[1]);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(tabnp_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(tabnp_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(tabnp_jezyk_pl,value,name,1);
end;
end;
end;
end;
end;
---
if ((pozostale_przestrzenie_jezyk and not po_polsku) or (po_polsku and pozostale_przestrzenie_jezyk_pl and pozostale_przestrzenie_jezyk))then
for name,value in pairs(pozostale_przestrzenie_jezyk)do
if por_prze(name)then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif por_prze(name.." talk")then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
elseif por_prze(value[1])then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
else
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
elseif(value[2] and por_prze(value[2]))then
local czy_przedmiotowa=parametry_modul["CzyTakCiąg"](przedmiotowa);
if(not czy_przedmiotowa)then
if(value[2])then
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,2);
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
else
return Zwracanie(pozostale_przestrzenie_jezyk_pl,value,name,1);
end;
end;
end;
end;
---
if awaryjnie and ((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then
local wiki_modul=require("Module:Wiki");
for np,strona in pairs(tabnp)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]=(np~="Project")and "w" or "b",};
if(strona2)then
local np2=mw.ustring.match(strona2,"^%s*([^:]+)%s*:");
if(((np2)and (por_prze(np2)or por_prze(np)))or((not np2)and np==""))then
local czy_dyskusja=parametry_modul["CzyTakCiąg"](dyskusja);
if(not czy_dyskusja)then
if(not po_polsku)then
return np2;
else
return m.Np{["nazwa"]=np,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
else
return m.Np{["nazwa"]=np,["dyskusja"]=dyskusja,["kanoniczna"]=((po_polsku)and "" or "tak"),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
end;
end;
end;
end;
end;
if(awaryjnie)then
return m.Np{["nazwa"]=nazwa,["dyskusja"]=dyskusja,["przedmiotowa"]=przedmiotowa,["kanoniczna"]=((po_polsku)and "" or (((kod_jezyka=="en")or(poza_jezykowe_projekty)) and "tak" or "")),["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),};
else
if(czy_istnieje)then
if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end;
else
return nazwa;
end;
end;
end;
end;
m["NAZWASERWISU"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local link=PobierzParametr("link");
local za=PobierzParametr("za");
local po=PobierzParametr("po");
local wikipedia=PobierzParametr("wikipedia");
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local w_jezyku_wiki=PobierzParametr("w języku wiki");
local bez_znacznikow=PobierzParametr("bez znaczników");
local bez_przetwarzania=PobierzParametr("bez przetwarzania");
local parametry_modul=require("Module:Parametry");
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local lista_projektow=mw.loadData("Module:Nazwy/przestrzenie").lista_projektow;
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local tablica_aliasow_kodow_projektow=wiki_interwiki_modul.tablica_aliasow_kodow_projektow;
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu];
local aliasy=tablica_aliasow_kodow_projektow[url];
local projekt=nil;
for kod,_ in pairs(aliasy)do
projekt=lista_projektow[kod];
if(projekt)then break;end;
end;
if(not projekt)then
local html_modul=require("Module:html");
local adres=html_modul["UrlBezProtokołu"](url);
projekt=mw.ustring.match(adres,"^//([%a%.]+)");
end;
if(not projekt)then
projekt="Wikibooks";
kod_jezyka=kod_jezyka_tego_projektu;
kod_projektu=kod_projektu_tego_projektu;
end;
local wikipedia=parametry_modul.CzyTak(wikipedia);
local link=parametry_modul.CzyTak(link);
local wiki_modul=require("Module:Wiki");
local function Nazwa_projektu()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=projekt,["kod języka"]=kod_jezyka,["kod projektu"]="w",["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]="w",} or projekt;
end;
local function Nazwa_strony_glownej()
return wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=pudelko_modul["Strona główna tego projektu"](),["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]=kod_jezyka_tego_projektu,["kod projektu bazy"]=kod_projektu_tego_projektu,} or pudelko_modul["Strona główna tego projektu"]();
end;
local nazwa_projektu2=Nazwa_projektu();
local nazwa=((link)and (nazwa or (parametry_modul.CzyTak(w_jezyku_wiki)and nazwa_projektu2 or projekt)) or nazwa_projektu2);
if(link)then
local linki_modul=require("Module:Linki");
if(wikipedia)then
if(kod_jezyka==kod_jezyka_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=nazwa_projektu2,["nazwa"]=nazwa,za=za,po=po,["kod projektu"]="w",["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
end;
else
if(kod_jezyka==kod_jezyka_tego_projektu)then
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
else
if(kod_projektu==kod_projektu_tego_projektu)then
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
else
return linki_modul["Link wewnętrzny"]{["strona"]=Nazwa_strony_glownej(),["nazwa"]=nazwa,za=za,po=po,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}
end;
end;
end;
else
return nazwa;
end;
end;
m["NAZWAPRZESTRZENI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_= mw.ustring.gsub(title.nsText,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local np=mw.ustring.match(strona,"^%s*([^:]+)%s*:");
if(not np)then return "";end;
return np;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
return "";
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nazwy_modul=require("Module:Nazwy");
local nstext;
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext) then
return nstext;
else
return "";
end;
end;
m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["PRZESTRZEŃDYSKUSJI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwa_przestrzeni_nazw=require("Module:Nazwy")["NAZWAPRZESTRZENI"](frame);
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
return nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"};
else
return nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
end;
m["NAZWASTRONY"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local pelna_nazwa=nazwa;
local parametry_modul=require("Module:Parametry");
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
if(not pelna_nazwa)then
local title=mw.title.getCurrentTitle();
if(not title)then return "";end;
local f,_=mw.ustring.gsub(title.text,"_"," ");
return f;
elseif((pelna_nazwa)and(pelna_nazwa==""))then
return "";
end;
elseif(not pelna_nazwa)then
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local strona=wiki_modul.WikidaneOdpowiednikStrony{["nazwa strony"]=strona_glowna_tego_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["kod języka bazy"]="pl",["kod projektu bazy"]="b",};
strona=strona or strona_glowna_tego_projektu;
local nazwa_strony=mw.ustring.match(strona,"^%s*[^:]+%s*:%s*(.*[^%s])%s*$");
if(not nazwa_strony)then return mw.getContentLanguage():ucfirst(strona);end;
nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony);
return nazwa_strony;
end;
local html_modul=require("Module:Html");
pelna_nazwa=html_modul["NazwaStronyAdresu"](pelna_nazwa);
local nazwa_przestrzeni=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:.+$");
if(not nazwa_przestrzeni)then
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
else
nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," ");
end;
local nstext;
local nazwy_modul=require("Module:Nazwy");
if(czy_biezaca_wiki)then
nstext=nazwy_modul.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nstext=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
if(nstext)then
local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.*[^%s_])[%s_]*$");
if(not nazwa_jednostki)then nazwa_jednostki="";end;
nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(nazwa_jednostki);
else
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"^[%s_:]*","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]*$","");
pelna_nazwa=mw.ustring.gsub(pelna_nazwa,"[%s_]+"," ");
return mw.getContentLanguage():ucfirst(pelna_nazwa);
end;
end;
m["BAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$");
return (base)and base or nazwa2;
end;
m["PEŁNANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PEŁNABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWABAZOWANAZWASTRONY"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["BAZOWANAZWASTRONYDYSKUSJI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["BAZOWANAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["PRZEDMIOTOWANAZWASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["NAZWASTRONYDYSKUSJI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["PRZESTRZEŃDYSKUSJI"](frame);
local nazwa2=nazwy_modul["NAZWASTRONY"](frame)
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2;
end;
m["CzęściTytułu"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tytul=PobierzParametr(1);
local ktora=PobierzParametr(2);
local czesc_tytulu=mw.ustring.match(tytul,"^%s*([^/]*"..mw.ustring.rep("/[^/]*",ktora-1)..")")
return (czesc_tytulu)and czesc_tytulu or tytul;
end;
m["NAZWAKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=3,};
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
else
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
end;
m["PEŁNANAZWAKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"](frame);
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki;
end;
m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przedmiotowa_przestrzeni_nazw,["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
local nazw;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/[^/]*/(.*)$");
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/.-$"))then
nazw=mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]*/[^/]*/(.*)$");
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
else
nazw=mw.ustring.match(nazwa_strony,"^[^/]*/(.*)$");
end;
return nazw or "";
end;
m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
if(artykul=="")then
local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](frame);
local tytul=mw.ustring.match(nazwa_ksiazki,"([^/]*)$");
return tytul or nazwa_ksiazki;
else
return artykul;
end;
end;
m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame)
local nazwy_modul=require("Module:Nazwy");
local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](frame);
local nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"](frame);
return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul;
end;
m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local wiki_modul=require("Module:Wiki");
local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwa_przedmiotowa_przestrzeni_nazw;
if(czy_biezaca_wiki)then
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["przedmiotowa"]="tak",["wyświetlana"]="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local kanoniczna=nazwy_np_modul.kanoniczna;
if((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.MainDisplayName)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Wikijunior))then
return nazwa_przestrzeni_nazw;
elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then
local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(mw.ustring.match(pelna_nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=1,};
else
return nazwa_przestrzeni_nazw;
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Project)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.Module))then
local pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(mw.ustring.match(pelna_nazwa_strony,"^"..((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "").."[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony,[2]=2,};
else
return nazwa_przestrzeni_nazw;
end;
else
return nazwa_przestrzeni_nazw;
end;
end;
m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local nazwa=PobierzParametr("nazwa") or PobierzParametr(1);
local klucz_projektu=PobierzParametr("klucz projektu");
local kod_jezyka=PobierzParametr("kod języka");
local kod_projektu=PobierzParametr("kod projektu");
local nazwy_modul=require("Module:Nazwy");
local nazwa_przedmiotowa_przestrzeni_nazw=nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Main)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Wikijunior))then
return "";
elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
else
return "";
end;
elseif((nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Wikibooks)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Template)or(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.Module))then
local nazwa_strony=nazwy_modul["NAZWASTRONY"]{nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=2,};
else
return "";
end;
else
return "";
end;
end;
m["NAZWASUBSTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony2=nazwy_modul["NAZWASTRONY"](frame);
return mw.ustring.match(pelna_nazwa_strony2,"[^/]*$");
end;
m["SUBNAZWAKSIĄŻKI"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["NAZWASUBSTRONY"]{nazwa=nazwy_modul["NAZWAKSIĄŻKI"](frame)};
end;
m["NAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local nazwa_strony=nazwy_modul["NAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=nazwa_strony,[2]=1,};
end;
m["PEŁNANAZWAKORZENIASTRONY"] = function(frame)
local nazwy_modul=require("Module:Nazwy");
local pelna_nazwa_strony_2=nazwy_modul["PEŁNANAZWASTRONY"](frame);
return nazwy_modul["CzęściTytułu"]{[1]=pelna_nazwa_strony_2,[2]=1,};
end;
return m
8byvrmq23mv5v4uiim7bn3oym15vyfr
Szablon:Szablony nazw
10
46040
438813
422269
2022-08-27T04:10:36Z
Persino
2851
wikitext
text/x-wiki
{{Szablon nawigacyjny
| nazwa = Szablony nazw
| tytuł = Szablony nazw
| zwijanie = rozwinięte
| szerokość = 20ex
| margines = 5px 0 5px 5px
| grafika =
| opis1 = Nazwa adresu książki
| spis1 =
* {{s|NAZWAKSIĄŻKI}}
| opis2 = Pełna nazwa adresu książki
| spis2 =
* {{s|PEŁNANAZWAKSIĄŻKI}}
| opis3 = Nazwa książki
| spis3 =
* {{s|SUBNAZWAKSIĄŻKI}}
| opis4 = Nazwa artykułu książki
| spis4 =
* {{s|NAZWAARTYKUŁUKSIĄŻKI}}
| opis5 = Nazwa artykułu książki lub tytuł książki
| spis5 =
*{{s|NAZWAARTYKUŁUKSIĄŻKI2}}
| opis6 = Pełna nazwa artykułu
| spis6 =
* {{s|PEŁNANAZWAARTYKUŁUKSIĄŻKI}}
| opis7 = Nazwa przestrzeni nazw artykułu książki
| spis7 =
* {{s|NAZWAPRZESTRZENIKSIĄŻKI}}
| opis8 = Nazwa przestrzeni nazw artykułu książki
| spis8 =
* {{s|PEŁNANAZWAPRZESTRZENIKSIĄŻKI}}
| opis9 = Nazwa korzenia strony
| spis9 =
* {{s|NAZWAKORZENIASTRONY}}
| opis10 = Pełna nazwa korzenia strony
| spis10 =
* {{s|PEŁNANAZWAKORZENIASTRONY}}
| opis11 = Nazwa przestrzeni nazw strony
| spis11 =
* {{s|NAZWAPRZESTRZENI}}
| opis12 = Nazwa przedmiotowej przestrzeni nazw strony
| spis12 =
* {{s|PRZEDMIOTOWAPRZESTRZEŃ}}
| opis13 = Nazwa przestrzeni nazw dyskusji strony
| spis13 =
* {{s|PRZESTRZEŃDYSKUSJI}}
| opis14 = Nazwa strony
| spis14 =
* {{s|NAZWASTRONY}}
| opis15 = Nazwa bazowa strony
| spis15 =
* {{s|BAZOWANAZWASTRONY}}
| opis16 = Pełna nazwa strony
| spis16 =
* {{s|PEŁNANAZWASTRONY}}
| opis17 = Pełna nazwa bazowa strony
| spis17 =
* {{s|PEŁNABAZOWANAZWASTRONY}}
| opis18 = Pełna przedmiotowa nazwa bazowa strony
| spis18 =
* {{s|PRZEDMIOTOWABAZOWANAZWASTRONY}}
| opis19 = Pełna nazwa bazowa strony dyskusji
| spis19 =
* {{s|BAZOWANAZWASTRONYDYSKUSJI}}
| opis20 = Pełna nazwa dyskusji strony
| spis20 =
* {{s|NAZWASTRONYDYSKUSJI}}
| opis21 = Pełna nazwa przedmiotowa strony
| spis21 =
* {{s|PRZEDMIOTOWANAZWASTRONY}}
| opis22 = Substrona pełnej nazwy strony
| spis22 =
*{{s|NAZWASUBSTRONY}}
| kategoria = Wikibooks
}}
h607exk0nxyo5hcqcxtgfoflwa0y1xg
Szablon:Ltr
10
48141
438836
360971
2022-08-27T09:41:10Z
Persino
2851
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Ltr/styles.css" /><div class="ltr" {{#if:{{{styl|}}}|style="{{{styl}}}"}}>{{{1}}}</div></includeonly><noinclude>{{Dokumentacja}}</noinclude>
rinzixp8onlfnem82hb2fnbqbwj6zcu
438841
438836
2022-08-27T10:00:00Z
Persino
2851
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Ltr/styles.css" /><div class="ltr" {{#if:{{{styl|}}}|style="{{{styl}}}"}}><bdo>{{{1}}}</bdo></div></includeonly><noinclude>{{Dokumentacja}}</noinclude>
idkgqtbp8shcp4qkyll86a9f1xtr5os
438852
438841
2022-08-27T10:27:48Z
Persino
2851
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Ltr/styles.css" />{{Div|klasa=ltr {{{klasa|}}}|styl={{{styl}}}|{{Bdo|{{{1}}}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
21rbd67upg4zpor9k9sxjblk4wifc4e
438853
438852
2022-08-27T10:28:16Z
Persino
2851
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Ltr/styles.css" />{{Div|klasa=ltr {{{klasa|}}}|styl={{{styl|}}}|{{Bdo|{{{1}}}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
8vhypz7g21397rggwgomjmwgbzqoj9t
Szablon:Ltr/opis
10
48142
438837
394896
2022-08-27T09:54:55Z
Persino
2851
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* Szablon przyjmuje jeden parametr, zawartość tego parametru jest wyświetlana z lewej do prawej w kontenerze <nowiki><div class="ltr">{{{1}}}</div></nowiki>, który ma rozmiar ustalany automatycznie.
* Szablon ten robi żądaną operację za pomocą stylu: {{LinkSzablon2|Ltr/styles.css}}:
{{ŹródłoCss|{{LuaSubst|Szablon:Ltr/styles.css}}}}
* Wzór szablonu {{s|Ltr|Tekst}}.
* Przykład: {{s|Ltr|Oto jest tekst.}}, i jego wynik na całej szerokości ekranu, poniżej:
{{Pre|{{Ltr|Oto jest tekst.}}}}
==Zobacz też==
* {{s|Rtl}} - szablon układa tekst z prawej do lewej.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
d23glic1t0klmi1rtl5md7gckn8tyw8
438842
438837
2022-08-27T10:00:23Z
Persino
2851
/* Użycie */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* Szablon przyjmuje jeden parametr, zawartość tego parametru jest wyświetlana z lewej do prawej w kontenerze <nowiki><div class="ltr"><bdo>{{{1}}}</bdo></div></nowiki>, który ma rozmiar ustalany automatycznie.
* Szablon ten robi żądaną operację za pomocą stylu: {{LinkSzablon2|Ltr/styles.css}}:
{{ŹródłoCss|{{LuaSubst|Szablon:Ltr/styles.css}}}}
* Wzór szablonu {{s|Ltr|Tekst}}.
* Przykład: {{s|Ltr|Oto jest tekst.}}, i jego wynik na całej szerokości ekranu, poniżej:
{{Pre|{{Ltr|Oto jest tekst.}}}}
==Zobacz też==
* {{s|Rtl}} - szablon układa tekst z prawej do lewej.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
kbpyltchgn1x7v9tqunqcghg7zzthio
438843
438842
2022-08-27T10:00:59Z
Persino
2851
/* Użycie */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* Szablon przyjmuje jeden parametr, zawartość tego parametru jest wyświetlana z lewej do prawej w kontenerze {{Code|<nowiki><div class="ltr"><bdo>{{{1}}}</bdo></div></nowiki>}}, który ma rozmiar ustalany automatycznie.
* Szablon ten robi żądaną operację za pomocą stylu: {{LinkSzablon2|Ltr/styles.css}}:
{{ŹródłoCss|{{LuaSubst|Szablon:Ltr/styles.css}}}}
* Wzór szablonu {{s|Ltr|Tekst}}.
* Przykład: {{s|Ltr|Oto jest tekst.}}, i jego wynik na całej szerokości ekranu, poniżej:
{{Pre|{{Ltr|Oto jest tekst.}}}}
==Zobacz też==
* {{s|Rtl}} - szablon układa tekst z prawej do lewej.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony dotyczące tekstów}}
</includeonly>
d0kxcob6n26mdan22aby2nuy4wr8c89
Moduł:StronicowyParser/DalszeFunkcje
828
55009
438803
438773
2022-08-26T18:08:06Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,true,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false,nil,true);
-- mw.log("TYTAN1",tekst_artykulu_caly,"TYTAN2");
if(not tekst_artykulu_caly)then return;end;
local iterator=mw.ustring.gmatch(tekst_artykulu_caly,"{{[^{}]-}}");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
for wywolanie in iterator do
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,wywolanie)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,"{{%s*[Dd]okumentacja%s*}}",tekst_artykulu2);
else
local dopasowanie=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,tekst_artykulu2);
elseif(zawartosc)then
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
zawartosc=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](zawartosc);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,zawartosc);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
AnalizujDokumentacja(tablica_parametrow_dokumentacja,wywolanie);
--stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(wywolanie,nazwa_modolu,AnalizujDokumentacja)
end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
--mw.log(tekst_artykulu_caly,"TYTAN");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneSzablonowa(tekst_artykulu_caly,nazwa_modolu);
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneSzablonowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
oa55ik4b2wv6fi20eqri3x31dkbno0c
438805
438803
2022-08-26T18:29:15Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,true,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false,nil,true);
-- mw.log("TYTAN1",tekst_artykulu_caly,"TYTAN2");
if(not tekst_artykulu_caly)then return;end;
local iterator=mw.ustring.gmatch(tekst_artykulu_caly,"{{[^{}]-}}");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
for wywolanie in iterator do
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,wywolanie)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,"{{%s*[Dd]okumentacja%s*}}",tekst_artykulu2);
else
local dopasowanie=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,tekst_artykulu2);
elseif(zawartosc)then
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
zawartosc=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](zawartosc);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,zawartosc);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
AnalizujDokumentacja(tablica_parametrow_dokumentacja,wywolanie);
--stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(wywolanie,nazwa_modolu,AnalizujDokumentacja)
end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
--mw.log(tekst_artykulu_caly,"TYTAN");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
8po0ot9ivyrv1ysy1ox5c4tj1irgqlb
438807
438805
2022-08-26T19:30:15Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,true,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,true,nil,true);
-- mw.log("TYTAN1",tekst_artykulu_caly,"TYTAN2");
if(not tekst_artykulu_caly)then return;end;
local iterator=mw.ustring.gmatch(tekst_artykulu_caly,"{{[^{}]-}}");
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
for wywolanie in iterator do
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,wywolanie)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,"{{%s*[Dd]okumentacja%s*}}",tekst_artykulu2);
else
local dopasowanie=mw.ustring.match(wywolanie,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,tekst_artykulu2);
elseif(zawartosc)then
wywolanie=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](wywolanie);
zawartosc=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](zawartosc);
tekst_artykulu_caly=mw.ustring.gsub(tekst_artykulu_caly,wywolanie,zawartosc);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
AnalizujDokumentacja(tablica_parametrow_dokumentacja,wywolanie);
--stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(wywolanie,nazwa_modolu,AnalizujDokumentacja)
end;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
--mw.log(tekst_artykulu_caly,"TYTAN");
if(not dokumentacja)then
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
k0ybmzwlabxkukqpgi2j6tfnieytl5g
438823
438807
2022-08-27T08:05:27Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,true,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false);
if(not tekst_artykulu_caly)then return;end;
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
return tekst_artykulu2;
else
local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
return tekst_artykulu2;
elseif(zawartosc)then
return zawartosc;
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod)
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon);
end);
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
if(not dokumentacja)then
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
ejvd5rac6nw0e83tjywjsa6dcq3cc2y
438824
438823
2022-08-27T08:25:08Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,true,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false);
if(not tekst_artykulu_caly)then return;end;
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
return tekst_artykulu2;
else
local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
return tekst_artykulu2;
elseif(zawartosc)then
return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod)
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon);
end);
if(not dokumentacja)then
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
9s09vm0l6a1mfwe4blh0n76wphgg07a
438825
438824
2022-08-27T08:37:19Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false);
if(not tekst_artykulu_caly)then return;end;
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
return tekst_artykulu2;
else
local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
return tekst_artykulu2;
elseif(zawartosc)then
return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod)
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon);
end);
if(not dokumentacja)then
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
00lbh7rm4e24a5k49agp9kfxhf66ei9
438827
438825
2022-08-27T09:04:25Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false);
if(not tekst_artykulu_caly)then return;end;
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
return tekst_artykulu2;
else
local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
return tekst_artykulu2;
elseif(zawartosc)then
return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod)
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon);
end);
if(not dokumentacja)then
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
rmhzl0t2eadzwynl3aqa1hw9ft6yrzl
438829
438827
2022-08-27T09:05:50Z
Persino
2851
Anulowanie wersji 438827 autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false);
if(not tekst_artykulu_caly)then return;end;
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
return tekst_artykulu2;
else
local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
return tekst_artykulu2;
elseif(zawartosc)then
return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod)
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon);
end);
if(not dokumentacja)then
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
00lbh7rm4e24a5k49agp9kfxhf66ei9
438831
438829
2022-08-27T09:08:12Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false);
if(not tekst_artykulu_caly)then return;end;
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
return tekst_artykulu2;
else
local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
return tekst_artykulu2;
elseif(zawartosc)then
return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod)
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon);
end);
if(not dokumentacja)then
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
8c7p7ek92aq7ptmbdzcwjdnv9ws8jz4
438832
438831
2022-08-27T09:12:29Z
Persino
2851
Scribunto
text/plain
local p={};
function p.ZaczynajAnalizowacArtykulyKsiazek(self)
self.tabela_listy_danych_analizy_ksiazki={};
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu={};
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
self.tabela_listy_danych_analizy_ksiazki.problemy={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_doloczonych_stron={};
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu={};
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych={};
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=elementy_w_tablicy_obiekty[1];
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[wartosc]={};
end;
self.tabela_listy_danych_analizy_ksiazki.licencja={};
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe")
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]();
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"]();
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"]();
local pelna_nazwa_ksiazki="Szablon:Podręcznik/Ustawienia/"..((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki;
local techniczne_modul=require("Module:Techniczne");
local ile,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki.."/config",};
if(ile>0)then
local frame=mw.getCurrentFrame();
local nazwa_szablonu=techniczne_modul.NazwaSzablonu(pelna_nazwa_ksiazki);
local zastepczy=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="zastępczy",}};
if(not mw.ustring.match(zastepczy,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.zastepczy=true;
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka zastępcza",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł zastępczy",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
local ksiazka_normalna=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul_normalny=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka_normalna,"^%s*$"))then
local strona=ksiazka_normalna..((artykul_normalny~="") and ("/"..artykul_normalny) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
else
local ksiazka=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="książka",}};
local artykul=frame:expandTemplate{title=nazwa_szablonu.."/config",args={[1]="artykuł",}};
if(not mw.ustring.match(ksiazka,"^%s*$"))then
local strona=ksiazka..((artykul~="") and ("/"..artykul) or "");
local ile,_=techniczne_modul.PoliczZbiory{[1]=strona,};
if(ile>0)then
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](strona);
nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](strona);
end;
end;
end;
end;
local tabela_listy_danych_analizy_ksiazki2={};
local linkobiekt={};
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, true,tabela_listy_danych_analizy_ksiazki2,linkobiekt);
local parametry_modul=require("Module:Parametry");
if(parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
p:PrzetworzZebraneInformacje(tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.DodawanieElementowDoTablicy(self,element_tablicy,nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki)
local tabela_listy_danych_analizy_ksiazki=self.tabela_listy_danych_analizy_ksiazki.problemy;
if(not tabela_listy_danych_analizy_ksiazki[element_tablicy])then
tabela_listy_danych_analizy_ksiazki[element_tablicy]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[element_tablicy];
if(nazwa_obiektu)then
if(not tabela_listy_danych_analizy_ksiazki[nazwa_obiektu])then
tabela_listy_danych_analizy_ksiazki[nazwa_obiektu]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_obiektu];
end;
if(not tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni])then
tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni]={};
end;
tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki[nazwa_przestrzeni];
tabela_listy_danych_analizy_ksiazki[nazwa_ksiazki]=true;
end;
function p.SpisTresciWstep(self,tekst_artykulu,nazwa_strony,obiekty,nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany)
local nazwa_modolu;
if czy_artukul_korzystany then
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_modolu=nazwa_strony;
end;
nazwa_strony=nazwa_strony and mw.ustring.gsub(nazwa_strony,"(|)",function (s) return "&#"..tostring(mw.ustring.byte(s))..";";end) or nil;
local tablica_spisu_tresci=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local uzyskany_w_wyniku_parsowania;
local tablica_powtarzajacych_sie_elementow={};
local elementy_linku=nil;
local frame=mw.getCurrentFrame();
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local tab_szablony=mw.loadData("Module:StronicowyParser/obiekty").szablony_stronicowego_parsera;
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_artykulu);
local numeracja;
local function SzablonNaglowkujWNaglowkuRozdzialu(naglowek,powtorka)
local wywolanie_naglowek_iterator=mw.ustring.match(naglowek,"{{%s*Śródtytuł%s*}}") or mw.ustring.gmatch(naglowek,"{{%s*Śródtytuł%s*|[^{}]*}}");
--local powtorka=0;
for wywolanie_naglowek in wywolanie_naglowek_iterator do
wywolanie_naglowek=mw.ustring.gsub(wywolanie_naglowek,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_naglowek);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(powtorka>=1)then
if(self.tabela_listy_danych_analizy_ksiazki)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.powtorka_naglowek_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("powtorka_naglowek_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki)
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
break;
end;
powtorka=powtorka+1;
end;
return powtorka;
end;
local function SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu)
local jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*}}") or mw.ustring.match(text_rozdzialu,"{{%s*Śródtytuł%s*|[^{}]*}}");
if(jest_naglowkuj_w_tekscie_rozdzialu)then
jest_naglowkuj_w_tekscie_rozdzialu=mw.ustring.gsub(jest_naglowkuj_w_tekscie_rozdzialu,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
local parametry_wywolania_szablonu_naglowek=techniczne_modul["ParsujWywołanieSzablonu"](jest_naglowkuj_w_tekscie_rozdzialu);
numeracja=parametry_wywolania_szablonu_naglowek["uchwyt"] or parametry_wywolania_szablonu_naglowek[1];
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej=0;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
else
p:DodawanieElementowDoTablicy("naglowek_w_tekscie_rozdzialu_w_stronie_doloczonej",nil,nazwa_przestrzeni,nazwa_ksiazki);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Śródtytuł:"..(numeracja or "");
end;
end;
end;
end;
for naglowek,text_rozdzialu,poziom_rozdzialu in iterator do
numeracja=nil;
if(self)then
--SzablonNaglowkujWNaglowkuRozdzialu(naglowek)
SzablonNaglowkujWTekscieRozdzialu(text_rozdzialu);
end;
local powtorka=0;
local function SzablonyWywolywane(szablon)
powtorka=SzablonNaglowkujWNaglowkuRozdzialu(szablon,powtorka);
local parametry_wywolania_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
if(tab_szablony[parametry_wywolania_szablonu[0]])then return "";end;
return szablon;
end;
local function SzablonyWywolywaneOgolny(naglowek)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local naglowek=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(naglowek,nazwa_modolu,nil,SzablonyWywolywane);
return naglowek;
end;
naglowek=SzablonyWywolywaneOgolny(naglowek);
--naglowek,_=mw.ustring.gsub(naglowek,"({{[^{}]+}})",SzablonyWywolywaneOgolny);
naglowek=frame:preprocess(naglowek);
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+:([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[:?([^{}|%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%[[^{}|%[%]]+|([^{}%[%]]+)%]%]","%1");
naglowek=mw.ustring.gsub(naglowek,"%[%s*%S+%s+([^%[%]]*)%]","%1");
naglowek=mw.ustring.gsub(naglowek,"[{}|]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end)
local linki_modul=require("Module:Linki");
local nazwa_rozdzialu_w_artykule=linki_modul["UsuńZnaczniki"](naglowek);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"<[^<>]+>","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[<>]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"\'\'","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"^[%s_]*","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"[%s_]*$","");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"_"," ");
nazwa_rozdzialu_w_artykule=mw.ustring.gsub(nazwa_rozdzialu_w_artykule,"|","&#"..tostring(mw.ustring.byte('|'))..";");
local numer_tego_samego_naglowka=1;
local nazwa_rozdzialu_w_artykule_p=mw.ustring.lower(nazwa_rozdzialu_w_artykule);
local numer_tego_samego_naglowka=1;
for s=1,#tablica_powtarzajacych_sie_elementow,1 do
local element=tablica_powtarzajacych_sie_elementow[s];
if(element==nazwa_rozdzialu_w_artykule)then
numer_tego_samego_naglowka=numer_tego_samego_naglowka+1;
end;
end;
if(numer_tego_samego_naglowka==1)then
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule,naglowek};
else
elementy_linku={(((nazwa_strony)and(nazwa_strony~=""))and (":"..nazwa_strony) or "").."#"..nazwa_rozdzialu_w_artykule.."_"..numer_tego_samego_naglowka,naglowek};
end;
if((obiekty)and(numeracja))then
obiekty[#obiekty+1]={numeracja,{elementy_linku[1], elementy_linku[2]}};
end;
if((poziom_rozdzialu or 0)>0)then
local numer_rozdzialu_ustalony=HNumer(poziom_rozdzialu);
tablica_powtarzajacych_sie_elementow[#tablica_powtarzajacych_sie_elementow+1]=nazwa_rozdzialu_w_artykule;
if(tablica_spisu_tresci==nil)then tablica_spisu_tresci={};end;
tablica_spisu_tresci[#tablica_spisu_tresci+1]={elementy_linku,numer_rozdzialu_ustalony};
end;
end;
if(self)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.naglowek_tekscie_rozdzialu_w_stronie_korzystanej)then
local linia_poczatkowa=mw.ustring.match(tekst_artykulu,"^[^\n]+");
if((linia_poczatkowa)and(mw.ustring.match(linia_poczatkowa,"^=+.+=+%s*")))then
return tablica_spisu_tresci;
end;
local tekst_zerowy=mw.ustring.match(tekst_artykulu,"^(.-)\n=+[^=]+=+") or tekst_artykulu;
SzablonNaglowkujWTekscieRozdzialu(tekst_zerowy);
end;
end;
end;
return tablica_spisu_tresci;
end;
function p.ZbierajJakieSaArtykulyIInformacjeOLicencji(self,nazwa_przestrzeni,nazwa_ksiazki,czy_artykul_korzystany)
local parametry_modul=require("Module:Parametry");
if((not nazwa_przestrzeni)or(not nazwa_ksiazki))then return 0;end;
local nazwa_modolu=(parametry_modul.CzyTak(nazwa_przestrzeni)and parametry_modul.CzyTak(nazwa_ksiazki))and nazwa_przestrzeni..":"..nazwa_ksiazki or nazwa_ksiazki;
local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(nil,nazwa_modolu,true);
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
----
local techniczne_modul=require("Module:Techniczne");
local wywolanie_spis_tresci="{{%s*"..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or ":")
..techniczne_modul["WzórNazwyStrony"](nazwa_ksiazki).."(/[Ss]pis[%s_]+treści)%s*}}";
local wywolanie_spis_tresci2="{{%s*(/[Ss]pis[%s_]+treści)%s*}}";
local strona_ze_spisem_tresci=mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci)
local strona_ze_spisem_tresci2=(not strona_ze_spisem_tresci) and mw.ustring.match(tekst_rozwiniety_calego_artykulu,wywolanie_spis_tresci2) or nil;
if(strona_ze_spisem_tresci or strona_ze_spisem_tresci2)then
local tekst_rozwiniety_calego_spisu_tresci=p.SpreparowanyWikikodStrony(nil,nazwa_modolu..strona_ze_spisem_tresci,true);
if(tekst_rozwiniety_calego_spisu_tresci)then
tekst_rozwiniety_calego_spisu_tresci=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_rozwiniety_calego_spisu_tresci);
----
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
tablica_ksiazki.spis_tresci.tekst=tekst_rozwiniety_calego_spisu_tresci;
if(not tablica_ksiazki.spis_tresci.wywolanie)then tablica_ksiazki.spis_tresci.wywolanie={};end;
tablica_ksiazki.spis_tresci.wywolanie[1]=wywolanie_spis_tresci;
tablica_ksiazki.spis_tresci.wywolanie[2]=wywolanie_spis_tresci2;
----
local wywolanie=strona_ze_spisem_tresci and wywolanie_spis_tresci or wywolanie_spis_tresci2;
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,wywolanie,tekst_rozwiniety_calego_spisu_tresci);
end;
end;
----
local wyzyskane_wywolanie_szablonu_spis_tresci="";
local tabelalisty2=nil;
local licencja_z_autorem=true;
local tabela_artykulow=nil;
local tabela_licencji_spisu_tresci=nil;
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local stronicowyparser_modul=require("Module:StronicowyParser");
local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_ksiazki,true);
local html_modul=require("Module:Html");
local _1=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!}}");
local _2=html_modul["KodyHTMLZnakówWikiCiągu"]("{{!((}}");
local _3=html_modul["KodyHTMLZnakówWikiCiągu"]("{{))!}}");
local mikroszablony={
["{{!}}"]=_1,
["{{!((}}"]=_2,
["{{))!}}"]=_3,
};
local mikroszablony_odwrotne={
[_1]="|",
[_2]="[[",
[_3]="]]",
};
local stronicowyparser_informacje=mw.loadData("Module:StronicowyParser/obiekty");
local jakie_nie_rozdzialy=stronicowyparser_informacje.tab_rozdzialow_pomijanych_w_rozwazaniach_na_stronach_glownych_ksiazek;
local jakie_spisy_tresci=stronicowyparser_informacje.tab_rozdzialow_glownych_spisow_tresci_ksiazek;
local wyrazenie_regularne="({{[&#;!%(%)]+}})";
local numer_rozdzialu_w_ksiazce=1;
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
local czy_jest_spis_tresci=nil;
local poziom_spisu_tresci=nil;
local dalej_nie_rozwazaj_spis_tresci=nil;
local wliczaj_artykuly_tego_rozdzialu=nil;
local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja)
rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then
poziom_spisu_tresci=poziom_rozdzialu;
czy_jest_spis_tresci=true;
elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
if(poziom_spisu_tresci<poziom_rozdzialu)then
wliczaj_artykuly_tego_rozdzialu=true;
else
wliczaj_artykuly_tego_rozdzialu=nil;
dalej_nie_rozwazaj_spis_tresci=true;
end;
end;
repeat
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}");
text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}");
until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") )
and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}")));
text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony);
if(not tabela_artykulow)then tabela_artykulow={};end;
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then
tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},};
end;
local function iteratorTekstuNaglowka()
local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)";
local iter=nil;
local tak=nil;
local czy_rozdzial=nil;
return function()
if(not czy_rozdzial)then
czy_rozdzial=true;
if((poziom_rozdzialu or 0)>0)then
return "","",rozdzial,true;
end;
end;
if(not tak)then
tak=true;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
if(not iter)then
iter=mw.ustring.gmatch(text,"\n"..re);
end;
local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
end;
end;
----
local function LiniaArtykolow(linia)
repeat
linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end);
until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})");
if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})")
or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})")
)then
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2");
linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2");
else
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2");
end;
local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false);
for i=1,#tabela_linii_artykolow,1 do
tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
end;
return tabela_linii_artykolow;
end;
local iterator=iteratorTekstuNaglowka();
local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
local tab_linia=LiniaArtykolow(linia)
for k=1,#tab_linia,1 do
local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])");
for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne);
wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",};
if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then
wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2;
end;
local pozycja_artykulu=nil;local nazwa=nil;
local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom;
if(wliczaj_artykuly_tego_rozdzialu)then
tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki);
--Rozdzialy początek
local znaki_niedozwolone;
if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then
tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",}
--pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu);
tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]);
znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]");
if(znaki_niedozwolone)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then
self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0;
end;
end;
tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]);
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or ""));
if(strona)then
tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
end;
local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare);
break;
elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then
local wiki_modul=require("Module:Wiki");
if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end;
local linia_artykokow=tab_linia[k];
linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne);
local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),};
table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare);
end;
else
link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
end;
if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then
local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$");
if(wywolanie_spisu_tresci)then
wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3");
local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci);
if(tabela_parametrow)then
local autor=tabela_parametrow["Autor"];
local szkoly=tabela_parametrow["Ukończone szkoły"];
local email=tabela_parametrow["Email"];
local dotyczy=tabela_parametrow["Dotyczy"];
local licencjonowanie=tabela_parametrow["Licencjonowanie"];
local umowa_prawna=tabela_parametrow["Umowa prawna"];
local konsekwencje=tabela_parametrow["Konsekwencje"];
if(autor~=nil)then
autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(szkoly~=nil)then
szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(email~=nil)then
email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(dotyczy~=nil)then
dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(licencjonowanie~=nil)then
licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(umowa_prawna~=nil)then
umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(konsekwencje~=nil)then
konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne);
end;
if(autor~=nil)then
tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
licencja_z_autorem=false;
end;
break;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end
end;
end;
end;
end;
end;
numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
end
local parsuj_rozdzialami=nil;
for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do
AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja);
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil);
end;
if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end;
return tabelalisty2;
end;
function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany)
local lista_dwuelementowa={};
lista_dwuelementowa[1]=kod_uchwytu;
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true;
end;
table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa);
end;
function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji)
local kod_uchwytu=nil;
if(tabela_parametrow_szablonu["uchwyt"])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]);
elseif(tabela_parametrow_szablonu[numer_numeracji])then
local parametry_modul=require("Module:Parametry");
kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]);
end;
if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then
p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany);
end;
end;
function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki)
local parametry_modul=require("Module:Parametry");
local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element];
return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni)
and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki));
end;
function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if(nazwa_przestrzeni)then
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then return;end;
local czy_element_wystepuje_w_tablicy=false;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(tablica_przestrzeni)then
local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni];
if(tabela_ksiazek)then
local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki];
if(tab_ksiazki)then
if(tab_ksiazki.spis)then
czy_lista_niepusta=true;
for _,tab_value1 in ipairs(tab_ksiazki.spis)do
if(tab_value1[2])then
for _,nazwa_artykulu1 in ipairs(tab_value1[2])do
if(nazwa_artykulu1[1]==nazwa_artykulu)then
czy_element_wystepuje_w_tablicy=true;
break;
end;
end;
end;
if(czy_element_wystepuje_w_tablicy)then break;end;
end;
end;
end;
end;
end;
if(not czy_element_wystepuje_w_tablicy)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0;
end;
end;
end;
end;
end;
end;
function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu)
local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil;
local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil;
local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil;
if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0;
end;
end;
if(czy_artykul_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0;
end;
end;
if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0;
end;
end;
end;
function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]());
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu)
if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"]
and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1")
or nil
) or nazwy_modul["NAZWASTRONY"]();
local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()};
local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local ksiazkowe_modul=require("Module:Książkowe");
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki);
local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki);
local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false);
end;
function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt)
local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2];
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3];
local parametry_modul=require("Module:Parametry");
nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil;
pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil;
uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil;
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
if(nazwa_artykulu)then
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",};
end;
local nazwa_ksiazki;local nazwa_przestrzeni;
if(pelna_nazwa_ksiazki)then
pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki);
local ksiazkowe_modul=require("Module:Książkowe");
pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki);
pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",};
nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki);
end;
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
if(nazwa_artykulu)then
if(nazwa_artykulu~="")then
if(not nazwa_ksiazki)then
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
elseif(nazwa_ksiazki=="")then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
end;
elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then
nazwa_artykulu="";
elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
return;
else
nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt);
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt)
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then
p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0;
end;
end;
function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow)
local linkobiekttab=linkobiekt[nazwa_obiektu];
local parametry_modul=require("Module:Parametry");
if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then
local parametry_modul=require("Module:Parametry");
local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu);
end;
tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true;
end;
table.insert(linkobiekttab,uchwyt_obiektu);
end;
function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu)
if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni=="")))
and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu=="")))
and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then
local parametry_modul=require("Module:Parametry");
if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then
local tabela_listy_danych_analizy_ksiazki2={}
local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2);
if(tabela_listy_danych_analizy_ksiazki0)then
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end;
p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu);
local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu];
local ile_razy=0;
if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then
for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do
if(parametry_obiektu[1]==uchwyt_obiektu)then
ile_razy=ile_razy+1;
if(ile_razy>1)then break;end;
end;
end;
end
if(ile_razy~=1)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0;
end;
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
end;
else
p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu);
end;
else
if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0;
else
self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0;
end;
end;
end;
end;
function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja)
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu);
if(nazwy_np_modul.Module==nazwa_przestrzeni)then
local techniczne_modul=require("Module:Techniczne");
local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu);
if(nazwa_modolu_opisu~=nazwa_modolu)then
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja);
else
return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja);
end;
elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja);
elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then
local szablony_magiczne={};
return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja);
else
local szablony_magiczne={};
local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false);
if(not tekst_artykulu_caly)then return;end;
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon)
local nazwa_strony2;
local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}");
if(dokumentacja_szablonu)then
local nazwa_strony2=nazwa_modolu.."/opis";
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true);
return tekst_artykulu2;
else
local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|");
if(dopasowanie)then
local nazwa_strony2=tablica_parametrow_dokumentacja[1];
local zawartosc=tablica_parametrow_dokumentacja["zawartość"];
if((nazwa_strony2)and(not zawartosc))then
local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu);
tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2);
return tekst_artykulu2;
elseif(zawartosc)then
return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu);
end;
end;
end;
end;
local techniczne_modul=require("Module:Techniczne");
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod)
local tablica_parametrow_dokumentacja=techniczne_modul["ParsujWywołanieSzablonu"](szablon);
return AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon);
end);
if(not dokumentacja)then
tekst_artykulu_caly=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu_caly,nazwa_modolu);
end;
return tekst_artykulu_caly;
end;
end;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modolu_szablonu_opisu,szablon_nie_opis)
local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
local uchwyt_strony;
local tekst_artykulu;
local nazwa_strony_bez_kodow_html;
if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
nazwa_strony_bez_kodow_html=require("Module:Html").TransformacjaKlasyZnakowej(nazwa_strony);
uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
if(not czy_istnieje)then
if(self and self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
end;
end;
return nil;
else
local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
if(czy_nie_istnieje_zawartosc)then
return nil;
end;
end;
else
return nil;
end;
if(czy_noinclude)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
else
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
end;
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
--tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)","");
if(szablony_magiczne)then
local nazwy_modul=require("Module:Nazwy");
szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_modolu_szablonu_opisu or nazwa_strony_bez_kodow_html);
end;
if(szablony_magiczne)then
tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
local ramka_modul=require("Module:Ramka");
tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
end;
if(not szablon_nie_opis)then
if(not dokumentacja)then
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
tekst_artykulu=stronicowyparser_potrzebne_modul:KodujStroneObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
end;
end;
return tekst_artykulu;
end;
function p.ZbieranieInformacji(self,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, czy_artukul_korzystany,tabela_listy_danych_analizy_ksiazki2,linkobiekt)
if(not czy_artukul_korzystany)then
if(self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni and self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki and self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu)then
if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return 0;
else
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=true;
end;
end;
else
return nil;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwa_przestrzeni~=nazwy_np_modul.Main)
and(nazwa_przestrzeni~=nazwy_np_modul.Wikijunior)
and((nazwa_przestrzeni~=nazwy_np_modul.User)or(not mw.ustring.match(nazwa_ksiazki,"^[^/]+/(.-)$")))
and((nazwa_przestrzeni~=nazwy_np_modul.Wikibooks)or(not mw.ustring.match(nazwa_ksiazki,"^%s*[Bb]rudnopis/[^/]+/(.-)$")))
)then
p:DodawanieElementowDoTablicy("strony_poza_zakresem_obslugiwanym",nil,nazwa_przestrzeni,nazwa_ksiazki)
end;
local parametry_modul=require("Module:Parametry");
if(self.tabela_listy_danych_analizy_ksiazki)then
if(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)then
local tabela_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_przestrzeni)then
local tabela_ksiazka=tabela_przestrzeni[nazwa_ksiazki];
if(tabela_ksiazka)then
local lista_artykolow=tabela_ksiazka.lista_artykolow;
if(lista_artykolow)then
local tabela_artykul=lista_artykolow[nazwa_artykulu];
if(tabela_artykul)then
local uchwyty_i_numeracje=tabela_artykul.uchwyty_i_numeracje;
if(uchwyty_i_numeracje)then
return 0;
end;
end;
end;
end;
end;
else
return nil;
end;
else
return nil;
end;
if(czy_artukul_korzystany)then
if((not self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)and(not self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then
self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni=nazwa_przestrzeni;
self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki=nazwa_ksiazki;
self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=nazwa_artykulu;
end;
end;
local nazwa_modolu=(nazwa_przestrzeni=="")and ((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu)
or nazwa_przestrzeni..":"..((nazwa_artykulu=="")and nazwa_ksiazki or nazwa_ksiazki.."/"..nazwa_artykulu);
local tekst_rozwiniety_calego_artykulu=p:SpreparowanyWikikodStrony(nazwa_modolu);
if(not czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
end;
-- przydzielanie tablicy
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni]={};end;
local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not tablica_przestrzeni[nazwa_ksiazki])then tablica_przestrzeni[nazwa_ksiazki]={};end;
local tablica_ksiazki=tablica_przestrzeni[nazwa_ksiazki];
if(not tablica_ksiazki.lista_artykolow)then tablica_ksiazki.lista_artykolow={};end;
if(not tablica_ksiazki.lista_artykolow[nazwa_artykulu])then tablica_ksiazki.lista_artykolow[nazwa_artykulu]={};end;
local artykul_analizowany=tablica_ksiazki.lista_artykolow[nazwa_artykulu];
local tablica_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
if(czy_artukul_korzystany)then
artykul_analizowany.artykul_biezacy=true;
tablica_ksiazki.ksiazka_analizowana=true;
end;
--koniec
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
if(not tabela_listy_danych_analizy_ksiazki2)then tabela_listy_danych_analizy_ksiazki2={};end;
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
for _,element_w_tablicy_obiekt in pairs(obiekty_modul.tablica_obiektow)do
local wartosc=element_w_tablicy_obiekt[1];
tabela_listy_danych_analizy_ksiazki2[wartosc]={};
if(czy_artukul_korzystany)then linkobiekt[wartosc]={};end;
end;
local strona;
if(czy_artukul_korzystany)then
strona="";
else
strona=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and "/"..nazwa_artykulu or "")
end;
local function InneInformacjePrzebneDoAnalizowanejKsiazki()
if((self.tabela_listy_danych_analizy_ksiazki.zastepczy) or (not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki))))then
if((nazwa_przestrzeni)and(nazwa_ksiazki))then
local czy_ksiazka_istnieje_w_tablicy=false;
local tabela_ksiazek=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_ksiazek)then
for nazwa_ksiazki_i,tablica_spisu in pairs(tabela_ksiazek) do
if(nazwa_ksiazki_i==nazwa_ksiazki)then
if(tablica_spisu.spis)then
czy_ksiazka_istnieje_w_tablicy=true;
break;
end;
end;
end;
end;
if(not czy_ksiazka_istnieje_w_tablicy)then
local tabela_wstepnych_informacji;
local normalna_nazwa_przestrzeni;local normalna_nazwa_ksiazki;
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
else
normalna_nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
normalna_nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
tabela_wstepnych_informacji=p:ZbierajJakieSaArtykulyIInformacjeOLicencji(self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni,self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki,czy_artukul_korzystany);
end;
if(tabela_wstepnych_informacji==0)then
if(czy_artukul_korzystany)then
self.tabela_listy_danych_analizy_ksiazki.problemy.korzystane_strona_glowna_nie_istnieje=0;
else
p:DodawanieElementowDoTablicy("doloczone_strony_glowne_nie_istnieja",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
else
if(tabela_wstepnych_informacji)then
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
tablica_ksiazki.spis=tabela_wstepnych_informacji[1];
tablica_ksiazki.licencja=tabela_wstepnych_informacji[2];
else
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni]={};
end;
if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki])then
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki]={};
end;
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].spis=tabela_wstepnych_informacji[1];
self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[normalna_nazwa_przestrzeni][normalna_nazwa_ksiazki].licencja=tabela_wstepnych_informacji[2];
end;
if(not tabela_wstepnych_informacji[1])then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych)then
if(((self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu=="")and(nazwa_artykulu~=""))or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=""))then
self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisow_tresci_do_korzystanych_ksiazek_na_ich_stronach_glownych=0;
end;
end;
end;
else
tablica_ksiazki.spis=tabela_wstepnych_informacji;
end;
else
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0;
end;
else
p:DodawanieElementowDoTablicy("brak_spisow_tresci_do_doloczonych_ksiazek_na_ich_stronach_glownych",nil,nazwa_przestrzeni,nazwa_ksiazki);
end;
end;
end;
end;
end;
end;
end;
function StronaZbiorcza()
if(czy_artukul_korzystany)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
local TakFun=function(frame) return true;end;local NieFun=function(frame) return nil;end;
return stronicowyparser_stronasubst_modul.AnalizaStronaSubst(self.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,nil);
end;
return nil;
end;
InneInformacjePrzebneDoAnalizowanejKsiazki();
local strona_zbiorcza=StronaZbiorcza();
if(strona_zbiorcza)then
if((tablica_ksiazki.spis_tresci)and(tablica_ksiazki.spis_tresci.tekst)and(tablica_ksiazki.spis_tresci.wywolanie)
and(tablica_ksiazki.spis_tresci.wywolanie[1])and(tablica_ksiazki.spis_tresci.wywolanie[2]))then
local pelny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1])
if(pelny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[1],tablica_ksiazki.spis_tresci.tekst);
else
local wzgledny=mw.ustring.match(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2])
if(wzgledny)then
tekst_rozwiniety_calego_artykulu,_=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,tablica_ksiazki.spis_tresci.wywolanie[2],tablica_ksiazki.spis_tresci.tekst);
end;
end;
end;
end;
if(czy_artukul_korzystany)then
if(not tekst_rozwiniety_calego_artykulu)then
if(strona_zbiorcza)then
self.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
return nil;
end;
end;
local toc;
if((not czy_artukul_korzystany)and(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone))then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
end;
local uzyskano_w_wyniku_parsowania_wywolanie_szablonu;
local analiza_stron_korzystanych_zbiorczych=nil;
local stronastart=nil;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
--local iterator=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,"{{[^{}]-}}");
local iterator=stronicowyparser_potrzebne_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu);
for uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt in iterator do
local function AnalizaParametrowSzablonuISzablonu(tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu)
if(czy_artukul_korzystany)then
if(tabela_parametrow_szablonu)then
if((not stronastart)and(self.tabela_listy_danych_analizy_ksiazki.formatowanie==nil))then
if(obiekty_modul.strona_start[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie=tabela_parametrow_szablonu["formatowanie"];
stronastart=true;
return;
elseif(obiekty_modul.strona_start_inne[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
stronastart=true;
return;
elseif(obiekty_modul.strona_start_analiza_spis_tresci[tabela_parametrow_szablonu[0]])then
self.tabela_listy_danych_analizy_ksiazki.formatowanie="tak";
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
stronastart=true;
return;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
elseif((strona_zbiorcza)and(not analiza_stron_korzystanych_zbiorczych)and(obiekty_modul.strona_zbiorcza[tabela_parametrow_szablonu[0]]))then
analiza_stron_korzystanych_zbiorczych=true;
return;
end;
end;
end;
local plik=mw.ustring.match(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"^{{:([^:|{}]-)}}$");
if(plik==nil)then
if(tabela_parametrow_szablonu)then
if(not parametry_modul.CzyTak(tabela_parametrow_szablonu["bez automatu"]))then
local czy_wypowiedzenie=mw.ustring.match(tabela_parametrow_szablonu[0],"^[wW]ypowiedzenie$");
local linkobiekt2;
local link;
if(czy_wypowiedzenie)then
linkobiekt2=false;
link=false;
else
linkobiekt2=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]inkObiekt$");
if(linkobiekt2)then
link=true;
else
link=mw.ustring.match(tabela_parametrow_szablonu[0],"^[Ll]ink");
end;
end;
local czy_obsluzone=true;
local funkcja_aliasow=function(nazwa_szablonu,elementy_w_tablicy_obiekty)
local wzor_nazwy_szablonu1=mw.ustring.gsub(elementy_w_tablicy_obiekty[1],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[2])then
if(type(elementy_w_tablicy_obiekty[2])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[2])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[2],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
end;
end;
end;
return czy_aliasy;
end;
for _,elementy_w_tablicy_obiekty in pairs(obiekty_modul.tablica_obiektow_bez_obiektu_nienazwanego)do
local wartosc_elementu=elementy_w_tablicy_obiekty[1];
if(not link)then
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
czy_aliasy=czy_wypowiedzenie or funkcja_aliasow(tabela_parametrow_szablonu[0],elementy_w_tablicy_obiekty);
if(czy_aliasy)then
if((not czy_wypowiedzenie)
or((czy_wypowiedzenie)and(
(tabela_parametrow_szablonu["rodzaj"]==wartosc_elementu)
))
)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,wartosc_elementu, czy_artukul_korzystany,elementy_w_tablicy_obiekty[5]);
czy_obsluzone=false;
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu= tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
if(uchwyt_obiektu and not mw.ustring.match(uchwyt_obiektu,"^%s*$"))then
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
end;
break;
end;
end;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
end;
elseif(czy_artukul_korzystany)then
if(link)then
local funkcja_aliasow_2=function(zmienna)
if(wartosc_elementu~=zmienna)then return false;end;
local wzor_nazwy_szablonu1="[Ll]ink"..wartosc_elementu;
local czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu1.."$");
local szablon;
if(not czy_aliasy)then
if(elementy_w_tablicy_obiekty[3])then
if(type(elementy_w_tablicy_obiekty[3])=="table")then
for _,alias in pairs(elementy_w_tablicy_obiekty[3])do
local wzor_nazwy_szablonu2=mw.ustring.gsub(alias,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then
szablon=alias
break;
end;
end;
else
local wzor_nazwy_szablonu2=mw.ustring.gsub(elementy_w_tablicy_obiekty[3],"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
czy_aliasy=mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_nazwy_szablonu2.."$");
if(czy_aliasy)then szablon=elementy_w_tablicy_obiekty[3];end;
end;
end;
else
szablon="Link"..wartosc_elementu;
end;
return czy_aliasy,szablon;
end;
if(not obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[wartosc_elementu])then
local typ=mw.getContentLanguage():lcfirst(wartosc_elementu);
local alias,szablon=funkcja_aliasow_2(wartosc_elementu);
if((alias)or((linkobiekt2)and(tabela_parametrow_szablonu["typ"]==typ)))then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,wartosc_elementu, linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=((alias)and szablon or "LinkObiekt")..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
czy_obsluzone=false;
break;
end;
else
local alias,szablon=funkcja_aliasow_2("Śródtytuł");
if(alias)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Śródtytuł", linkobiekt);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
czy_obsluzone=false;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=szablon..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
break;
end;
end;
end;
end;
end;
if(czy_obsluzone)then
if(czy_wypowiedzenie)then
p:ObsluzSzablonWzor(tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,"Obiekt", czy_artukul_korzystany,obiekty_modul.obiekty[5]);
if(czy_artukul_korzystany)then
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[obiekty_modul.obiekty[5]];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Obiekt"..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
end;
elseif(czy_artukul_korzystany)then
if(linkobiekt2)then
p:LinkowanieOgolnie(tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,"Obiekt", linkobiekt);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local uchwyt_obiektu=tabela_parametrow_szablonu[elementy_w_tablicy_obiekty[1]] or tabela_parametrow_szablonu["uchwyt"];
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="Link"..wartosc_elementu..":"..((uchwyt_obiektu)and uchwyt_obiektu or "");
end;
else
for wartosc_elementu,_ in pairs(obiekty_modul.bez_uchwytow_spis_tresci)do
local wzor_artykolow_ksiazek=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_artykolow_ksiazek.."$"))then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
p:ZbieranieInformacjiArtykolowKsiazek(tabela_parametrow_szablonu);
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci=nil;
if(not self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone)then
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane=true;
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
else
self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_doloczone=nil;
end;
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2] or "";
local artykul=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1] or "";
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie="ArtykułKsiążki:"..nazwa_ksiazki..((artykul)and ("/"..artykul) or "")
end;
end;
end;
for wartosc_elementu,_ in pairs(obiekty_modul.szablony_pudelka)do
local wzor_szablonu_pudelka=mw.ustring.gsub(wartosc_elementu,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end)
if(mw.ustring.match(tabela_parametrow_szablonu[0],"^"..wzor_szablonu_pudelka.."$"))then
p:ZbieranieInformacjiPudelek(tabela_parametrow_szablonu);
if(not self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or "";
local nazwa_jednostki=tabela_parametrow_szablonu["nazwa jednostki"] or "";
local nazwa_symulacyjnej_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
local uchwyt=tabela_parametrow_szablonu[0]..":"..nazwa_symulacyjnej_strony;
self.tabela_listy_danych_analizy_ksiazki.ktory_szablon_stronicowy_ma_zwracac_kategorie=uchwyt;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
stronicowyparser_potrzebne_modul:AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,AnalizaParametrowSzablonuISzablonu);
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].uchwyty_i_numeracje=tabela_listy_danych_analizy_ksiazki2;
if(czy_artukul_korzystany)then
if(analiza_stron_korzystanych_zbiorczych)then
local stronicowyparser_stronasubst_modul=require("Module:StronicowyParser/StronaSubst");
tekst_rozwiniety_calego_artykulu=stronicowyparser_stronasubst_modul.LiczOperacjeStronZbiorczych(self,tekst_rozwiniety_calego_artykulu);
mw.log('To jest strona zbiorcza.')
end;
if(self.tabela_listy_danych_analizy_ksiazki.analiza_spis_tresci_korzystane)then
toc=p:SpisTresciWstep(tekst_rozwiniety_calego_artykulu,strona,tabela_listy_danych_analizy_ksiazki2["Śródtytuł"],nazwa_przestrzeni,nazwa_ksiazki,czy_artukul_korzystany);
mw.log("Liczę spis treści artykułów korzystanych.");
end;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu=tabela_listy_danych_analizy_ksiazki2;
self.tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni][nazwa_ksiazki];
end;
tablica_ksiazki.lista_artykolow[nazwa_artykulu].TOC=toc;
return self.tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzLinki(self,tabela_listy_danych_analizy_ksiazki2,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu)
if((not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2])or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]) then
self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu1][1]=0;
end;
return;
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu2]=0;
return;
end;
end;
end;
end;
end;
function p.PrzetworzMozliweWszystkieRodzajeObiektow(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(obiekty_modul.tablica_obiektow)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p:Sprawdzanie_i_numerowanie(dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja);
end;
end;
function p.PrzetworzZebraneInformacje(self,tabela_listy_danych_analizy_ksiazki2,linkobiekt,nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2)
local obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
for nazwa_przestrzeni,tablica_nazw_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local prosto=true;
if(self.tabela_listy_danych_analizy_ksiazki.zastepczy)then
if((nazwa_przestrzeni==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni)
and(nazwa_ksiazki==self.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki))then
prosto=false;
end;
end;
if(prosto)then
local nazwa_przestrzeni_nazw_strony=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_ksiazki);
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_artykolow) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=1;local czy_da_sie_numerowac_obiekty_ze_spisem_tresci =false;
if(nazwa_ksiazki)then
if(nazwa_artykulu=="")then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
else
local tab_ksiazki=tablica_nazw_artykulow.spis;
if(tab_ksiazki)then
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,nazwa_artykulu1 in ipairs(tab_rozdzialu[2])do
if(nazwa_artykulu1[1]~=nazwa_artykulu)then
numer_obiektu_w_ksiazce=numer_obiektu_w_ksiazce+1;
else
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;break;
end;
end;
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then break;end;
end;
end;
end;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
p:DodawanieElementowDoTablicy("bledy_uchwytow_doloczonych_stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_ksiazki);
end;
if(czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
elseif(not czy_da_sie_numerowac_obiekty_ze_spisem_tresci)then
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
else
p:PrzetworzMozliweWszystkieRodzajeObiektow(dane_artykulu,biezacy_artykul,0,obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(obiekty_modul.tablica_obiektow)do
local obiekt2=obiekt[1];
p:SprawdzLinki(tabela_listy_danych_analizy_ksiazki2,linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.Sprawdzanie_i_numerowanie(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(obiekty_modul.nienumerowane_z_uchwytami_szablony_naglowka[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu])then
self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron[nazwa_obiektu]=0;
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][1]=nil;
czy_numerowac=false;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik
elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then
self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;
rmhzl0t2eadzwynl3aqa1hw9ft6yrzl
Szablon:Szablony ramek formułujące kod
10
55251
438850
421853
2022-08-27T10:23:11Z
Persino
2851
wikitext
text/x-wiki
{{Navbox ze zwijanymi grupami
| nazwa = Szablony ramek formułujące kod
| zwijanie = rozwinięte
| tytuł = Ta tabelka przedstawia wszystkie rodzaje szablonów ramek formułujące kod HTML lub wikikod, lub nimi się posługujące.
| opis1 =
| spis1 = {{Navbox
| tytuł = Szablony oparte o tagi w znacznikach
| zwijanie = {{#switch:{{ROOTPAGENAME}}|ElastycznyWiersz|ElastycznyWiersz2|ElastycznaKolumna|ElastycznaKolumna2|ElastycznyZawijanyWiersz|ElastycznyZawijanyWiersz2
|Znacznik|Znacznik start|Znacznik koniec|Div|Div start|Div koniec|Pre|PreBody|PreBody2|PreLine|PreLineBody|Pre start|Pre koniec|Code|Tt|Sub|Sup|Su|P|Span|Bdo|Small|Big|Strong|Br|Hr|Center|Indeksuj|Kotwica|Id|OverflowWiersz|BrClear|-|SpanClear|HrClear|DivClear|DivLinia=rozwinięte|#default=zwinięte}}
| zależnie = <includeonly>tak</includeonly>
| podgrupa
| opis1 = Szablony generujące kod FlexBox
| spis1 = {{s|ElastycznyWiersz}}{{•}} {{s|ElastycznyWiersz2}}{{•}} {{s|ElastycznaKolumna}}{{•}} {{s|ElastycznaKolumna2}}{{•}} {{s|ElastycznyZawijanyWiersz}}{{•}} {{s|ElastycznyZawijanyWiersz2}}
| opis2 = Szablony znaczników
| spis2 = {{Nowrap|{{s|Znacznik}} (kombajn)}}{{•}} {{Nowrap|{{s|Znacznik start}} (kombajn otwierający)}}{{•}} {{Nowrap|{{s|Znacznik koniec}} (kombajn zamykający)}}{{•}} {{Nowrap|{{s|Div}} (oparty o div)}}{{•}} {{Nowrap|{{s|Div start}} (oparty o div otwierający)}}{{•}} {{Nowrap|{{s|Div koniec}} (oparty o div zamykający)}}{{•}} {{s|Pre}}{{•}} {{s|PreBody}}{{•}} {{s|PreBody2}}{{•}} {{s|PreLine}}{{•}} {{s|PreLineBody}}{{•}} {{s|Pre start}}{{•}} {{s|Pre koniec}}{{•}} {{s|Code}}{{•}} {{s|Tt}}{{•}} {{s|Sub}}{{•}} {{s|Sup}}{{•}} {{s|Su}}{{•}} {{s|P}}{{•}} {{s|Span}}{{•}} {{s|Bdo}}{{•}} {{s|Small}}{{•}} {{s|Big}}{{•}} {{s|Strong}}{{•}} {{s|Br}}{{•}} {{s|Hr}}{{•}} {{s|Center}}
| opis3 = Szablony kotwice
| spis3 = {{s|Indeksuj}}{{•}} {{s|Kotwica}}{{•}} {{s|Id}}
| opis4 = Ramki pływające
| spis4 = {{s|OverflowWiersz}}
| opis5 = Opływanie elementów HTML
| spis5 = {{s|BrClear}}{{•}} {{Nowrap|{{s|-}} (przekierowanie do {{s|BrClear}})}}{{•}} {{Nowrap|{{s|Koniec grafiki}} (przekierowanie do {{s|BrClear}})}}{{•}} {{s|SpanClear}}{{•}} {{s|HrClear}}{{•}} {{s|DivClear}}
| opis6 = Ramki ustalone
| spis6 = {{s|DivLinia}}
}}
| opis2 =
| spis2 = {{Navbox
| tytuł = Szablony wyświetlające kod obsługiwany przez system MediaWiki
| zwijanie = {{#switch:{{ROOTPAGENAME}}|Parametr|Tag|S|M|Wikikod|PreWikikod|PreLineWikikod|ŹródłoWikikod|Nowiki|PreNowiki|PreLineNowiki|ŹródłoNowiki=rozwinięte|#default=zwinięte}}
| zależnie = <includeonly>tak</includeonly>
| podgrupa
| opis1 = Szablony pokazujące kod MediaWiki
| spis1 = {{s|Parametr}}{{•}} {{s|Tag}}{{•}} {{s|S}}{{•}} {{s|M}}{{•}} {{s|Wikikod}}{{•}} {{s|PreWikikod}}{{•}} {{s|PreLineWikikod}}{{•}} {{s|ŹródłoWikikod}}
| opis2 = Szablony do wyświetlania czystego wikikodu
| spis2 = {{s|Nowiki}}{{•}} {{s|PreNowiki}}{{•}} {{s|PreLineNowiki}}{{•}} {{s|ŹródłoNowiki}}
}}
| opis3 =
| spis3 = {{Navbox
| tytuł = Szablony niepudełkowe tworzące czysty kod oparte o mechanizm MediaWiki lub HTML
| zwijanie = {{#switch:{{ROOTPAGENAME}}|KodHTMLZnaku|KodyHTMLZnakówWikiCiągu|Kategoria|Kategorie|Zmiany w linkujących=rozwinięte|#default=zwinięte}}
| zależnie = <includeonly>tak</includeonly>
| podgrupa
| opis1 = Szablony zamieniające znak w kod HTML w ramce
| spis1 = {{s|KodHTMLZnaku}}{{•}} {{s|KodyHTMLZnakówWikiCiągu}}
| opis2 = Szablony zwracania kategorii
| spis2 = {{Nowrap|{{s|Kategoria}} (jedna kategoria)}}{{•}} {{Nowrap|{{s|Kategorie}} (wiele kategorii)}}
| opis3 = Szablony ramek linkujących
| spis3 = {{s|Zmiany w linkujących}}
}}
| opis4 =
| spis4 = {{Navbox
| tytuł = Szablony generujące pudełka oparte o wikikod lub kod HTML
| zwijanie = {{#switch:{{ROOTPAGENAME}}|Komórka|Wiersz|Tabelka|Tabela|Tabela nawigacyjna|Menu listy pozycji kategorii|Menu listy kategorii tematycznych|Menu listy kategorii portali|Blok tabelowy|Blok tabelowy/Zamknij|Blok ramkowy|Blok ramkowy/Zamknij|Pudełko ramkowe|Pudełko ramkowe 1|Pudełko ramkowe 2|Pudełko ramkowe 3|Pudełko ramkowe 4|Pudełko ramkowe 5|Pudełko komórkowe|Pudełko komórkowe 1|Pudełko komórkowe 2|Pudełko komórkowe 3|Pudełko komórkowe 4|Pudełko komórkowe 5|OpakujKategorie|OpakujKategorieZeSortowaniem=rozwinięte|#default=zwinięte}}
| zależnie = <includeonly>tak</includeonly>
| podgrupa
| opis1 = Szablony tabeli
| spis1 = {{s|Komórka}}{{•}} {{s|Wiersz}}{{•}} {{s|Tabelka}}{{•}} {{s|Tabela}}{{•}} {{s|Tabela nawigacyjna}}{{•}} {{s|Menu listy pozycji kategorii}}{{•}} {{s|Menu listy kategorii tematycznych}}{{•}} {{s|Menu listy kategorii portali}}
| opis2 = Pudełka bloków
| spis2 = {{Nowrap|{{s|Blok tabelowy}} (szablon otwierający)}}{{•}} {{s|Blok tabelowy/Zamknij}} (szablon zamykający){{•}} {{Nowrap|{{s|Blok ramkowy}} (szablon otwierający)}}{{•}} {{s|Blok ramkowy/Zamknij}} (szablon zamykający)
| opis3 = Szablony pudełek opartych na warstwach
| spis3 = {{Nowrap|{{s|Pudełko ramkowe}} (szablon ogólny)}}{{•}} {{s|Pudełko ramkowe 1}}{{•}} {{s|Pudełko ramkowe 2}}{{•}} {{s|Pudełko ramkowe 3}}{{•}} {{s|Pudełko ramkowe 4}}{{•}} {{s|Pudełko ramkowe 5}}
| opis4 = Szablony pudełek opartych o tabelki
| spis4 = {{Nowrap|{{s|Pudełko komórkowe}} (szablon ogólny)}}{{•}} {{s|Pudełko komórkowe 1}}{{•}} {{s|Pudełko komórkowe 2}}{{•}} {{s|Pudełko komórkowe 3}}{{•}} {{s|Pudełko komórkowe 4}}{{•}} {{s|Pudełko komórkowe 5}}
| opis5 = Szablony ramek opakowujących kategorie
| spis5 = {{s|OpakujKategorie}}{{•}} {{s|OpakujKategorieZeSortowaniem}}
}}
| opis5 =
| spis5 = {{Navbox
| tytuł = Szablony liczb
| zwijanie = {{#switch:{{ROOTPAGENAME}}|Łączna liczba stron w kategoriach|Rekurencyjna łączna liczba stron w kategoriach|Forma wyrażenia po liczbie|Forma wyrazu jednostka po liczbie|Forma wyrazu strona po liczbie|Forma wyrazu artykuł po liczbie|Forma wyrazu podręcznik po liczbie|Forma wyrazu książka po liczbie|Forma wyrazu broszura po liczbie|Forma wyrazu publikacja po liczbie|Forma wyrazu plik po liczbie=rozwinięte|#default=zwinięte}}
| zależnie = <includeonly>tak</includeonly>
| podgrupa
| opis1 = Szablony liczenia stron w podkategoriach
| spis1 = {{s|Łączna liczba stron w kategoriach}}{{•}} {{s|Rekurencyjna łączna liczba stron w kategoriach}}
| opis2 = Szablony form wyrażeń po liczbie
| spis2 = {{Nowrap|{{s|Forma wyrażenia po liczbie}} (kombajn)}}{{•}} {{s|Forma wyrazu jednostka po liczbie}}{{•}} {{s|Forma wyrazu strona po liczbie}}{{•}} {{s|Forma wyrazu artykuł po liczbie}}{{•}} {{s|Forma wyrazu podręcznik po liczbie}}{{•}} {{s|Forma wyrazu książka po liczbie}}{{•}} {{s|Forma wyrazu broszura po liczbie}}{{•}} {{s|Forma wyrazu publikacja po liczbie}}{{•}} {{s|Forma wyrazu plik po liczbie}}
}}
| opis6 =
| spis6 = {{Navbox
| tytuł = Funkcje języka {{LinkPediaGłówna|Lua}} w {{LinkPediaProjekt|Lua|Scribunto}} uruchamiane w postaci pewnej ramki generujące kod
| zwijanie = zwinięte
| zależnie = <includeonly>tak</includeonly>
| podgrupa
| opis1 = Funkcje modułu ramek {{m|Ramka}}
| spis1 = {{m|Ramka|Szablon}}{{•}} {{m|Ramka|Moduł}}{{•}} {{m|Ramka|Parser}}{{•}} {{m|Ramka|Powtarzaj}}{{•}} {{m|Ramka|PowtarzajOdDo}}{{•}} {{m|Ramka|PrzetwarzajIterującCiąg}}{{•}} {{m|Ramka|Rozwiń}}
}}
| dół = Ten szablon nawigacyjny pokazuje szablony tworzące kod HTML lub wikikod, jeżeli nie używa do tego języka {{LinkPediaGłówna|Lua}} w {{LinkPediaProjekt|Lua|Scribunto}}, albo generujące, jeżeli używa do tego tego języka, bądź szablony posługujące się wikikodem na stronach.
| kategoria = Wikibooks
}}
ku75frsr541m4in2vy89scqmtifn8bj
Szablon:Span/opis
10
56522
438846
426469
2022-08-27T10:13:20Z
Persino
2851
/* Tabelka z przykładami dla szablonu: {{s|Code}}, czyli przy znaczniku: {{Tag|code}} */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Znacznik liniowy umieszczany w tekście pozwalający nadać temu elementowi pewne cechy, oparty na obsłudze tagów: {{Tag|span}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Test jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami.
== Opis parametrów ==
; Wywołanie
{{pre|{{s|Span|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}}
Szablon {{s|Span}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej.
; Parametry
* {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany,
* {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany,
* {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny,
* {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny,
* {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny.
----
Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany.
== Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) ==
Szablon {{s|Span}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się:
; Szablon {{s|Code}}
{{PreWikikod|Span}}
== Przykłady ==
Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu.
;Przykład
{{Pre|Oto jest tekst przed tym szablonem: {{s|Span|Oto jest tekst do analizy}}, a tutaj po.}}
;Wynik
{{Pre|Oto jest tekst przed tym szablonem: {{Span|Oto jest tekst do analizy}}, a tutaj po.}}
=== Tabelka z przykładami dla szablonu: {{s|Span}}, czyli przy znaczniku: {{Tag|span}}===
Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{LinkSzablon|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu:
{{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}}
Zatem:
<templatestyles src="Szablon:Znacznik/przykłady.css" />
{{Tabela przykładów użycia szablonów|
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=tło obramowanie|3=id=przykład1}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=czcionka kolor tło obramowanie}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=id=przykład}}
}}
Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|code}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Tekst, któremu można nadać pewne cechy.",
"type": "string",
"required": true
},
"styl": {
"description": "Styl CSS, właściwości i ich wartości.",
"type": "string"
},
"klasa": {
"description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.",
"type": "string"
},
"id": {
"description": "Unikatowy identyfikator.",
"type": "string",
"suggested": true
},
"atrybuty": {
"description": "Atrybuty, inne niż: id, style i class.",
"type": "string"
}
},
"paramOrder": [
"1",
"id",
"styl",
"klasa",
"atrybuty"
],
"description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span>...</span>."
}
</templatedata>
== Zobacz też ==
* {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami.
{{Szablony ramek formułujące kod}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony do formatowania tekstu
| Szablony ramek tworzące kod HTML
| Szablony znaczników
}}
</includeonly>
nlw8qqtkl6kbqwyvu5a3fw8pcipicsv
438847
438846
2022-08-27T10:20:51Z
Persino
2851
/* Tabelka z przykładami dla szablonu: {{s|Span}}, czyli przy znaczniku: {{Tag|span}} */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Znacznik liniowy umieszczany w tekście pozwalający nadać temu elementowi pewne cechy, oparty na obsłudze tagów: {{Tag|span}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Test jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami.
== Opis parametrów ==
; Wywołanie
{{pre|{{s|Span|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}}
Szablon {{s|Span}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej.
; Parametry
* {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany,
* {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany,
* {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny,
* {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny,
* {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny.
----
Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany.
== Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) ==
Szablon {{s|Span}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się:
; Szablon {{s|Code}}
{{PreWikikod|Span}}
== Przykłady ==
Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu.
;Przykład
{{Pre|Oto jest tekst przed tym szablonem: {{s|Span|Oto jest tekst do analizy}}, a tutaj po.}}
;Wynik
{{Pre|Oto jest tekst przed tym szablonem: {{Span|Oto jest tekst do analizy}}, a tutaj po.}}
=== Tabelka z przykładami dla szablonu: {{s|Span}}, czyli przy znaczniku: {{Tag|span}}===
Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{LinkSzablon|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu:
{{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}}
Zatem:
<templatestyles src="Szablon:Znacznik/przykłady.css" />
{{Tabela przykładów użycia szablonów|
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=tło obramowanie|3=id=przykład1}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=czcionka kolor tło obramowanie}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=id=przykład}}
}}
Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|Span}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Tekst, któremu można nadać pewne cechy.",
"type": "string",
"required": true
},
"styl": {
"description": "Styl CSS, właściwości i ich wartości.",
"type": "string"
},
"klasa": {
"description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.",
"type": "string"
},
"id": {
"description": "Unikatowy identyfikator.",
"type": "string",
"suggested": true
},
"atrybuty": {
"description": "Atrybuty, inne niż: id, style i class.",
"type": "string"
}
},
"paramOrder": [
"1",
"id",
"styl",
"klasa",
"atrybuty"
],
"description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span>...</span>."
}
</templatedata>
== Zobacz też ==
* {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami.
{{Szablony ramek formułujące kod}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony do formatowania tekstu
| Szablony ramek tworzące kod HTML
| Szablony znaczników
}}
</includeonly>
4u72w9x9h4giige9ymkqo5z3dihm807
438848
438847
2022-08-27T10:21:06Z
Persino
2851
/* Tabelka z przykładami dla szablonu: {{s|Span}}, czyli przy znaczniku: {{Tag|span}} */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Znacznik liniowy umieszczany w tekście pozwalający nadać temu elementowi pewne cechy, oparty na obsłudze tagów: {{Tag|span}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Test jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami.
== Opis parametrów ==
; Wywołanie
{{pre|{{s|Span|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}}
Szablon {{s|Span}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej.
; Parametry
* {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany,
* {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany,
* {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny,
* {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny,
* {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny.
----
Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany.
== Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) ==
Szablon {{s|Span}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się:
; Szablon {{s|Code}}
{{PreWikikod|Span}}
== Przykłady ==
Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu.
;Przykład
{{Pre|Oto jest tekst przed tym szablonem: {{s|Span|Oto jest tekst do analizy}}, a tutaj po.}}
;Wynik
{{Pre|Oto jest tekst przed tym szablonem: {{Span|Oto jest tekst do analizy}}, a tutaj po.}}
=== Tabelka z przykładami dla szablonu: {{s|Span}}, czyli przy znaczniku: {{Tag|span}}===
Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{LinkSzablon|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu:
{{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}}
Zatem:
<templatestyles src="Szablon:Znacznik/przykłady.css" />
{{Tabela przykładów użycia szablonów|
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=tło obramowanie|3=id=przykład1}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=czcionka kolor tło obramowanie}}
{{Przykład użycia szablonu w tabeli|tytuł=Span|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=id=przykład}}
}}
Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|span}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Tekst, któremu można nadać pewne cechy.",
"type": "string",
"required": true
},
"styl": {
"description": "Styl CSS, właściwości i ich wartości.",
"type": "string"
},
"klasa": {
"description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.",
"type": "string"
},
"id": {
"description": "Unikatowy identyfikator.",
"type": "string",
"suggested": true
},
"atrybuty": {
"description": "Atrybuty, inne niż: id, style i class.",
"type": "string"
}
},
"paramOrder": [
"1",
"id",
"styl",
"klasa",
"atrybuty"
],
"description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span>...</span>."
}
</templatedata>
== Zobacz też ==
* {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami.
{{Szablony ramek formułujące kod}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony do formatowania tekstu
| Szablony ramek tworzące kod HTML
| Szablony znaczników
}}
</includeonly>
k1d6d34yi6ir74g0oo3weqn3m98s853
Szablon:Tabela przykładów użycia szablonów
10
56584
438857
403830
2022-08-27T10:48:20Z
Persino
2851
wikitext
text/x-wiki
<includeonly>{{Div start|styl=white-space:nowrap;overflow-x:auto}}<!--
-->{{Tabelka|klasa=wikitable|<!--
-->{{Wiersz|<!--
-->{{Komórka|nagłówek=tak|Wywołanie}}<!--
-->{{Komórka|nagłówek=tak|Efekt}}<!--
-->{{#if:{{{uwagi|}}}|<!--
-->{{Komórka|nagłówek=tak|Uwagi}}<!--
-->}}<!--
-->}}<!--
-->{{{1}}}<!--
-->{{Wiersz}}<!--
-->}}<!--
-->{{Div koniec}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
59eh3dhlhj5wfnrh07u5n7u8kd0um5p
438858
438857
2022-08-27T11:03:43Z
Persino
2851
Anulowanie wersji 438857 autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
wikitext
text/x-wiki
<includeonly><!--
-->{{Tabelka|klasa=wikitable|<!--
-->{{Wiersz|<!--
-->{{Komórka|nagłówek=tak|Wywołanie}}<!--
-->{{Komórka|nagłówek=tak|Efekt}}<!--
-->{{#if:{{{uwagi|}}}|<!--
-->{{Komórka|nagłówek=tak|Uwagi}}<!--
-->}}<!--
-->}}<!--
-->{{{1}}}<!--
-->{{Wiersz}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
a381efg0v0hsnqkugbm86b2tm2l8blw
438859
438858
2022-08-27T11:09:47Z
Persino
2851
wikitext
text/x-wiki
<includeonly><!--
-->{{Tabelka|klasa=wikitable|styl=display:flex;flex-direction:row;width:100%|<!--
-->{{Wiersz|styl=display:flex;flex-direction:row;width:100%|<!--
-->{{Komórka|nagłówek=tak|Wywołanie}}<!--
-->{{Komórka|nagłówek=tak|Efekt}}<!--
-->{{#if:{{{uwagi|}}}|<!--
-->{{Komórka|nagłówek=tak|Uwagi}}<!--
-->}}<!--
-->}}<!--
-->{{{1}}}<!--
-->{{Wiersz}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
lnpt7kws4rpleabeln5cehlywriz4ed
438861
438859
2022-08-27T11:23:58Z
Persino
2851
wikitext
text/x-wiki
<includeonly>{{Div start|styl=display:flex;flex-direction:row;width:auto;white-space:nowrap;overflow:auto}}<!--
-->{{Tabelka|klasa=wikitable|styl=display:flex;flex-direction:row;width:100%|<!--
-->{{Wiersz|styl=display:flex;flex-direction:row;width:100%|<!--
-->{{Komórka|styl=width:70%;|nagłówek=tak|Wywołanie}}<!--
-->{{Komórka|styl=width:30%;|nagłówek=tak|Efekt}}<!--
-->{{#if:{{{uwagi|}}}|<!--
-->{{Komórka|nagłówek=tak|Uwagi}}<!--
-->}}<!--
-->}}<!--
-->{{{1}}}<!--
-->{{Wiersz}}<!--
-->}}{{Div koniec}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
q1fsxqon8diam9pjpytakcozry0r0cq
438864
438861
2022-08-27T11:52:39Z
Persino
2851
wikitext
text/x-wiki
<includeonly><!--
-->{{Tabelka|klasa=wikitable|<!--
-->{{Wiersz|<!--
-->{{Komórka|nagłówek=tak|Wywołanie}}<!--
-->{{Komórka|nagłówek=tak|Efekt}}<!--
-->{{#if:{{{uwagi|}}}|<!--
-->{{Komórka|nagłówek=tak|Uwagi}}<!--
-->}}<!--
-->}}<!--
-->{{{1}}}<!--
-->{{Wiersz}}<!--
-->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
a381efg0v0hsnqkugbm86b2tm2l8blw
Moduł:StronicowyParser/Potrzebne
828
58155
438798
438766
2022-08-26T17:37:42Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_szablonow,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_szablonow[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneSzablonowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_szablonow)then self.tablica_szablonow={};end;
if(not self.tablica_szablonow[nazwa_modolu])then self.tablica_szablonow[nazwa_modolu]={};end;
---
self.tablica_szablonow[nazwa_modolu]["VAR"]={};
self.tablica_szablonow[nazwa_modolu]["LINKW"]={};
self.tablica_szablonow[nazwa_modolu]["LINKZ"]={};
self.tablica_szablonow[nazwa_modolu]["TEMPLATE"]={};
---
local tablica_szablonow_dany_modol=self.tablica_szablonow[nazwa_modolu];
--return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"TEMPLATE");
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow)
if(not tablica_szablonow)then tablica_szablonow=self.tablica_szablonow[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_szablonow[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_szablonow);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_szablonow=self.tablica_szablonow[nazwa_modolu];
--mw.logObject(tablica_szablonow,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
0isc9p0tfwfexym0zath362b5tb83ko
438799
438798
2022-08-26T17:43:32Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_szablonow,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_szablonow[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneSzablonowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_szablonow)then self.tablica_szablonow={};end;
if(not self.tablica_szablonow[nazwa_modolu])then self.tablica_szablonow[nazwa_modolu]={};end;
---
self.tablica_szablonow[nazwa_modolu]["VAR"]={};
self.tablica_szablonow[nazwa_modolu]["LINKW"]={};
self.tablica_szablonow[nazwa_modolu]["LINKZ"]={};
self.tablica_szablonow[nazwa_modolu]["TEMPLATE"]={};
---
local tablica_szablonow_dany_modol=self.tablica_szablonow[nazwa_modolu];
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow)
if(not tablica_szablonow)then tablica_szablonow=self.tablica_szablonow[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_szablonow[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_szablonow);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_szablonow=self.tablica_szablonow[nazwa_modolu];
--mw.logObject(tablica_szablonow,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
isfmoukk6dnnj5fitlrprqx7zawgt0p
438800
438799
2022-08-26T17:51:47Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_szablonow,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_szablonow[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneSzablonowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_szablonow)then self.tablica_szablonow={};end;
if(not self.tablica_szablonow[nazwa_modolu])then self.tablica_szablonow[nazwa_modolu]={};end;
---
self.tablica_szablonow[nazwa_modolu]["VAR"]={};
self.tablica_szablonow[nazwa_modolu]["LINKW"]={};
self.tablica_szablonow[nazwa_modolu]["LINKZ"]={};
self.tablica_szablonow[nazwa_modolu]["TEMPLATE"]={};
---
local tablica_szablonow_dany_modol=self.tablica_szablonow[nazwa_modolu];
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<[Nn][Oo][Ww][Ii][Kk][Ii]>(.-)</[Nn][Oo][Ww][Ii][Kk][Ii]>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow)
if(not tablica_szablonow)then tablica_szablonow=self.tablica_szablonow[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_szablonow[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_szablonow);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_szablonow=self.tablica_szablonow[nazwa_modolu];
--mw.logObject(tablica_szablonow,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
4mq70dkpfayqt9sta7vcdu89z3gwu6n
438801
438800
2022-08-26T17:57:40Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
self.numer_szablonu["PRE"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_szablonow,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_szablonow[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneSzablonowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_szablonow)then self.tablica_szablonow={};end;
if(not self.tablica_szablonow[nazwa_modolu])then self.tablica_szablonow[nazwa_modolu]={};end;
---
self.tablica_szablonow[nazwa_modolu]["VAR"]={};
self.tablica_szablonow[nazwa_modolu]["LINKW"]={};
self.tablica_szablonow[nazwa_modolu]["LINKZ"]={};
self.tablica_szablonow[nazwa_modolu]["TEMPLATE"]={};
---
local tablica_szablonow_dany_modol=self.tablica_szablonow[nazwa_modolu];
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<[Pp][Rr][Ee]>(.-)</[Pp][Rr][Ee]>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"PRE");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<[Nn][Oo][Ww][Ii][Kk][Ii]>(.-)</[Nn][Oo][Ww][Ii][Kk][Ii]>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<[Mm][Aa][Tt][Hh]>(.-)</[Mm][Aa][Tt][Hh]>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow)
if(not tablica_szablonow)then tablica_szablonow=self.tablica_szablonow[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_szablonow[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_szablonow);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_szablonow=self.tablica_szablonow[nazwa_modolu];
--mw.logObject(tablica_szablonow,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
auvyxushq63br3tch2l95bmpdosg748
438802
438801
2022-08-26T18:07:19Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
self.numer_szablonu["PRE"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_szablonow,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_szablonow[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneSzablonowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_szablonow)then self.tablica_szablonow={};end;
if(not self.tablica_szablonow[nazwa_modolu])then self.tablica_szablonow[nazwa_modolu]={};end;
---
self.tablica_szablonow[nazwa_modolu]["TEMPLATE"]={};
self.tablica_szablonow[nazwa_modolu]["LINKW"]={};
self.tablica_szablonow[nazwa_modolu]["LINKZ"]={};
self.tablica_szablonow[nazwa_modolu]["VAR"]={};
self.tablica_szablonow[nazwa_modolu]["NOWIKI"]={};
self.tablica_szablonow[nazwa_modolu]["MATH"]={};
self.tablica_szablonow[nazwa_modolu]["PRE"]={};
---
local tablica_szablonow_dany_modol=self.tablica_szablonow[nazwa_modolu];
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"PRE");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow)
if(not tablica_szablonow)then tablica_szablonow=self.tablica_szablonow[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_szablonow[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_szablonow);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_szablonow=self.tablica_szablonow[nazwa_modolu];
--mw.logObject(tablica_szablonow,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
g6e5ssj3ktwf07vy48na43sp34pbrx0
438804
438802
2022-08-26T18:29:10Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
self.numer_szablonu["PRE"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_szablonow,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_szablonow[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneObiektowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_szablonow)then self.tablica_szablonow={};end;
if(not self.tablica_szablonow[nazwa_modolu])then self.tablica_szablonow[nazwa_modolu]={};end;
---
self.tablica_szablonow[nazwa_modolu]["TEMPLATE"]={};
self.tablica_szablonow[nazwa_modolu]["LINKW"]={};
self.tablica_szablonow[nazwa_modolu]["LINKZ"]={};
self.tablica_szablonow[nazwa_modolu]["VAR"]={};
self.tablica_szablonow[nazwa_modolu]["NOWIKI"]={};
self.tablica_szablonow[nazwa_modolu]["MATH"]={};
self.tablica_szablonow[nazwa_modolu]["PRE"]={};
---
local tablica_szablonow_dany_modol=self.tablica_szablonow[nazwa_modolu];
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"PRE");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_szablonow_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow)
if(not tablica_szablonow)then tablica_szablonow=self.tablica_szablonow[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_szablonow[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_szablonow);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_szablonow);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_szablonow=self.tablica_szablonow[nazwa_modolu];
--mw.logObject(tablica_szablonow,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
3jqywnkq7mbbndo9poi9jz3ot8vynit
438806
438804
2022-08-26T19:13:29Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
self.numer_szablonu["PRE"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_obiektow_strony,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_obiektow_strony[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneObiektowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_obiektow_strony)then self.tablica_obiektow_strony={};end;
if(not self.tablica_obiektow_strony[nazwa_modolu])then self.tablica_obiektow_strony[nazwa_modolu]={};end;
---
local tablica_obiektow_strony_dany_modol=self.tablica_obiektow_strony[nazwa_modolu];
tablica_obiektow_strony_dany_modol["TEMPLATE"]={};
tablica_obiektow_strony_dany_modol["LINKW"]={};
tablica_obiektow_strony_dany_modol["LINKZ"]={};
tablica_obiektow_strony_dany_modol["VAR"]={};
tablica_obiektow_strony_dany_modol["NOWIKI"]={};
tablica_obiektow_strony_dany_modol["MATH"]={};
tablica_obiektow_strony_dany_modol["PRE"]={};
---
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"PRE");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony)
if(not tablica_obiektow_strony)then tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_obiektow_strony[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_obiektow_strony);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu];
--mw.logObject(tablica_obiektow_strony,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
lv4libkqws82h8r5oweft4wfh9l7u8z
438826
438806
2022-08-27T09:04:22Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
self.numer_szablonu["PRE"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_obiektow_strony,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_obiektow_strony[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneObiektowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_obiektow_strony)then self.tablica_obiektow_strony={};end;
if(not self.tablica_obiektow_strony[nazwa_modolu])then self.tablica_obiektow_strony[nazwa_modolu]={};end;
---
local tablica_obiektow_strony_dany_modol=self.tablica_obiektow_strony[nazwa_modolu];
tablica_obiektow_strony_dany_modol["TEMPLATE"]={};
tablica_obiektow_strony_dany_modol["LINKW"]={};
tablica_obiektow_strony_dany_modol["LINKZ"]={};
tablica_obiektow_strony_dany_modol["VAR"]={};
tablica_obiektow_strony_dany_modol["NOWIKI"]={};
tablica_obiektow_strony_dany_modol["MATH"]={};
tablica_obiektow_strony_dany_modol["PRE"]={};
---
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"PRE");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony)
if(not tablica_obiektow_strony)then tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_obiektow_strony[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_obiektow_strony);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,__Funkcja, __Funkcja2)
if(obiekt~="TEMPLATE")then return;end;
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu];
--mw.logObject(tablica_obiektow_strony,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
n6wg5wa4vfr3wa0fhct9piockloarj3
438828
438826
2022-08-27T09:05:40Z
Persino
2851
Anulowanie wersji 438826 autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
self.numer_szablonu["PRE"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_obiektow_strony,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_obiektow_strony[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneObiektowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_obiektow_strony)then self.tablica_obiektow_strony={};end;
if(not self.tablica_obiektow_strony[nazwa_modolu])then self.tablica_obiektow_strony[nazwa_modolu]={};end;
---
local tablica_obiektow_strony_dany_modol=self.tablica_obiektow_strony[nazwa_modolu];
tablica_obiektow_strony_dany_modol["TEMPLATE"]={};
tablica_obiektow_strony_dany_modol["LINKW"]={};
tablica_obiektow_strony_dany_modol["LINKZ"]={};
tablica_obiektow_strony_dany_modol["VAR"]={};
tablica_obiektow_strony_dany_modol["NOWIKI"]={};
tablica_obiektow_strony_dany_modol["MATH"]={};
tablica_obiektow_strony_dany_modol["PRE"]={};
---
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"PRE");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony)
if(not tablica_obiektow_strony)then tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_obiektow_strony[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_obiektow_strony);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu];
--mw.logObject(tablica_obiektow_strony,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
lv4libkqws82h8r5oweft4wfh9l7u8z
438830
438828
2022-08-27T09:08:08Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
self.numer_szablonu["PRE"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_obiektow_strony,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_obiektow_strony[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneObiektowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_obiektow_strony)then self.tablica_obiektow_strony={};end;
if(not self.tablica_obiektow_strony[nazwa_modolu])then self.tablica_obiektow_strony[nazwa_modolu]={};end;
---
local tablica_obiektow_strony_dany_modol=self.tablica_obiektow_strony[nazwa_modolu];
tablica_obiektow_strony_dany_modol["TEMPLATE"]={};
tablica_obiektow_strony_dany_modol["LINKW"]={};
tablica_obiektow_strony_dany_modol["LINKZ"]={};
tablica_obiektow_strony_dany_modol["VAR"]={};
tablica_obiektow_strony_dany_modol["NOWIKI"]={};
tablica_obiektow_strony_dany_modol["MATH"]={};
tablica_obiektow_strony_dany_modol["PRE"]={};
---
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"PRE");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony)
if(not tablica_obiektow_strony)then tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu]["TEMPLATE"];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"TEMPLATE"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local kod=iter();
if(kod==nil)then return nil;end;
kod=tonumber(kod);
szablon=tablica_obiektow_strony[kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_obiektow_strony);
return szablon,kod;
end;
if(not tak)then
local szablon,kod=IterMain();
return szablon,kod;
else
local szablon,kod=iter2();
if(not szablon)then
tak=nil;
local szablon,kod=IterMain();
return szablon,kod;
else
return szablon,kod;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony);
for szablon,kod in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,"TEMPLATE"),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,__Funkcja, __Funkcja2)
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu];
--mw.logObject(tablica_obiektow_strony,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
2mj41108km6a4qbum920bmj255dou7w
438833
438830
2022-08-27T09:13:51Z
Persino
2851
Scribunto
text/plain
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
self.numer_szablonu={};
self.numer_szablonu["TEMPLATE"]=1;
self.numer_szablonu["LINKW"]=1;
self.numer_szablonu["LINKZ"]=1;
self.numer_szablonu["VAR"]=1;
self.numer_szablonu["NOWIKI"]=1;
self.numer_szablonu["MATH"]=1;
self.numer_szablonu["PRE"]=1;
end;
function p.ZamieniajSzablony(self,szablon,tablica_obiektow_strony,co)
local kod=znak_127.."'\"`UNIQ--"..(co or "TEMPLATE").."-"..self.numer_szablonu[co or "TEMPLATE"].."-QINU`\"'"..znak_127;
tablica_obiektow_strony[co or "TEMPLATE"][self.numer_szablonu[co or "TEMPLATE"]]=szablon;
self.numer_szablonu[co or "TEMPLATE"]=self.numer_szablonu[co or "TEMPLATE"]+1;
return kod;
end;
function p.OgolnyWzor(numer_szablonu,co)
if(not numer_szablonu)then
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-(%d+)%-QINU`\"'"..znak_127;
return wzor;
end;
local wzor=znak_127.."'\"`UNIQ%-%-"..(co or "TEMPLATE").."%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
return wzor;
end;
function p.KodujStroneObiektowa(self,tekst_artykulu,nazwa_modolu)
p:ZamieniajSzablonyStart();
if(not self.tablica_obiektow_strony)then self.tablica_obiektow_strony={};end;
if(not self.tablica_obiektow_strony[nazwa_modolu])then self.tablica_obiektow_strony[nazwa_modolu]={};end;
---
local tablica_obiektow_strony_dany_modol=self.tablica_obiektow_strony[nazwa_modolu];
tablica_obiektow_strony_dany_modol["TEMPLATE"]={};
tablica_obiektow_strony_dany_modol["LINKW"]={};
tablica_obiektow_strony_dany_modol["LINKZ"]={};
tablica_obiektow_strony_dany_modol["VAR"]={};
tablica_obiektow_strony_dany_modol["NOWIKI"]={};
tablica_obiektow_strony_dany_modol["MATH"]={};
tablica_obiektow_strony_dany_modol["PRE"]={};
---
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Pp][Rr][Ee]%s*>(.-)</%s*[Pp][Rr][Ee]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"PRE");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>(.-)</%s*[Nn][Oo][Ww][Ii][Kk][Ii]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"NOWIKI");end);
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"<%s*[Mm][Aa][Tt][Hh]%s*>(.-)</%s*[Mm][Aa][Tt][Hh]%s*>",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"MATH");end);
local ile_var=0;local ile_linkw=0;local ile_linkz=0;local ile_template=0;
repeat
tekst_artykulu,ile_linkw=mw.ustring.gsub(tekst_artykulu,"(%[%[[^%[%]]+%]%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKW");end);
tekst_artykulu,ile_linkz=mw.ustring.gsub(tekst_artykulu,"(%[[^%[%]]+%])",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"LINKZ");end);
tekst_artykulu,ile_var=mw.ustring.gsub(tekst_artykulu,"({{{[^{}]-}}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"VAR");end);
tekst_artykulu,ile_template=mw.ustring.gsub(tekst_artykulu,"({{[^{}]-}})",function(szablon) return p:ZamieniajSzablony(szablon,tablica_obiektow_strony_dany_modol,"TEMPLATE");end);
until ((ile_var==0)and(ile_linkw==0)and(ile_linkz==0)and(ile_template==0));
return tekst_artykulu;
end;
function p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony)
if(not tablica_obiektow_strony)then tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu];end;
local iter=mw.ustring.gmatch(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(nil,"(%a+)"));
local tak=nil;
local szablon=nil;
local iter2=nil;
local function Iterator()
local function IterMain()
local obiekt,kod=iter();
if((not obiekt)or(not kod))then return nil;end;
kod=tonumber(kod);
szablon=tablica_obiektow_strony[obiekt][kod];
tak=true;
iter2=p.IteratorSzablonu(self,szablon,nil,tablica_obiektow_strony);
return szablon,kod,obiekt;
end;
if(not tak)then
local szablon,kod,obiekt=IterMain();
return szablon,kod,obiekt;
else
local szablon,kod,obiekt=iter2();
if((not szablon)or(not kod)or(not obiekt))then
tak=nil;
local szablon,kod,obiekt=IterMain();
return szablon,kod,obiekt;
else
return szablon,kod,obiekt;
end;
end;
end;
return Iterator;
end;
function p.SkladajSzablonoweWywolanie(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony,__funkcja)
local techniczne_modul=require("Module:Techniczne");
local iterator=p.IteratorSzablonu(self,tekst_rozwiniety_calego_artykulu,nazwa_modolu,tablica_obiektow_strony);
for szablon,kod,obiekt in iterator do
szablon=((__funkcja)and __funkcja(szablon,kod) or szablon);
szablon=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](szablon);
tekst_rozwiniety_calego_artykulu=mw.ustring.gsub(tekst_rozwiniety_calego_artykulu,p.OgolnyWzor(kod,obiekt),szablon);
end;
return tekst_rozwiniety_calego_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
local ulozenie=nil;
local ostatnie=0;
local h_numer_zapamietane=nil;
return function(h_numer,h_numer_nowe,jakie)
if(not h_numer_nowe)then
if(not jakie)then
if(h_numer==0)then
return h_numer_zapamietane;
elseif(h_numer<0)then
h_numer=math.abs(h_numer);
end;
else
if(h_numer==0)then
h_numer_zapamietane=0;
return 0;
end;
end;
if((ulozenie==nil)or(ulozenie>=h_numer))then
ulozenie=h_numer-1;
elseif(ostatnie+1<h_numer-ulozenie)then
ulozenie=h_numer-ostatnie-1;
end;
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
h_numer_zapamietane=h_numer;
return h_numer;
else
ulozenie=h_numer-h_numer_nowe;
ostatnie=h_numer-ulozenie;
return h_numer_nowe;
end;
end;
end;
function p.PoziomAdresu(adres)
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
end;
return i;
end;
function p.NazwaNadStrony(adres,numer)
if((numer)and(numer==1))then return nil;end;
if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
local lens=#adres;
local i=1;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
end;
if(i==numer)then
return mw.ustring.sub(adres,1,p-1);
end;
end;
return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
krok=krok or 1;
if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
local lens=#adres;
local i=1;
local a=nil;local b=nil;
for p=1, lens,1 do
local znak=mw.ustring.sub(adres,p,p);
if(znak=="/")then
i=i+1;
if(i==numer)then
if(not a)then a=p+1;end;
end;
if(i==numer+krok)then
if(not b)then b=p-1;break;end;
end;
end;
end;
if(not a)then a=1;end;
if(not b)then b=lens;end;
return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
local nazwa_jednostki=self.args["nazwa jednostki"];
if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
if(nazwa_jednostki)then
local html_modul=require("Module:Html");
self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
local nazwy_modul=require("Module:Nazwy");
self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
else
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame,tabela_listy_danych_analizy_ksiazki)
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local nazwa_przestrzeni;local nazwa_ksiazki;
if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=self.nazwa_przestrzeni;
nazwa_ksiazki=self.nazwa_ksiazki;
end;
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
local parametry_modul=require("Module:Parametry");
self.args=parametry_modul.PobierzArgsParametry(frame,true);
end;
function p.Args(self)
return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
p:AnalizujArgumentySzablonu(frame);
p:ParametryPudelkaKsiazki(frame);
local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.CzyTak(self.args["nagłówek"]);
local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
self.tab_artykul={};
local html_modul=require("Module:Html");
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie in ipairs(tab_lista[2])do
local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
if(naglowek or not tab_artykul_bez_naglowka[artykul])then
if(not naglowek)then
tab_artykul_bez_naglowka[artykul]=true;
end;
table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
end;
end;
end;
end;
self.len_tab_artykul=#self.tab_artykul;
return true;
end;
function p.PomiedzyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
self.numer=tonumber(frame.args[1]) or 1;
self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
if(lista_elementow_spisu_tresci==nil)then return nil;end;
local twor_listy="";
local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
local poziom=1;
local num={};
for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
if(licznik==1)then
num[#num+1]=1;
twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
else
if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
num[#num]=num[#num]+1;
twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
num[#num+1]=1;
poziom=poziom+1;
twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
local num_length=#num;
for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do
table.remove(num);
end;
num[#num]=num[#num]+1;
local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
poziom=poziom-roznica_poziomow;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
end;
end;
end;
twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci or 0);
return twor_listy;
end;
function p.TOC(frame,lista_elementow_spisu_tresci,czy_nie_aktualny,rozciagnij)
local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
local parametry_modul=require("Module:Parametry");
local frame=frame or mw.getCurrentFrame();
local args=frame.args;
local toc_czy_tocramka=parametry_modul.CzyTak(args["toc"]);
if(not toc_czy_tocramka)then
local czy_ukryte=twor_listy;
local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"] or "700px";
local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"] or "100%";
local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"] or "Spis treści";
local spis_artykulu=parametry_modul.CzyTak(args["spis artykułu"]);
local czy_bez_arginesu_dolnego=parametry_modul.CzyTak(args["bez marginesu dolnego"]);
local czy_z_marginesami_ramki=parametry_modul.CzyTak(args["z marginesami ramki"]);
local zawartosc_z_marginesami=parametry_modul.CzyTak(args["zawartość z marginesami"]);
twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..' mw-overflow-x mw-overflow-y mw-not-overflow-x" style="'..(zawartosc_z_marginesami and ("padding:"..args["zawartość z marginesami"])..";" or "")..'width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
local wikikod_menu='{{Tabela nawigacyjna|styl='..((czy_z_marginesami_ramki) and ("margin:"..args["z marginesami ramki"])..";" or "")..((czy_bez_arginesu_dolnego) and 'margin-bottom:0;' or "")..(czy_ukryte and "" or "visibility:hidden")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
return rozwiniety_wikikod;
else
return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
end;
end;
function p.AnalizaSzablonuStronicowegoParsera(self,uzyskano_w_wyniku_parsowania_wywolanie_szablonu,kod,obiekt,nazwa_modolu,__Funkcja, __Funkcja2)
if(obiekt~="TEMPLATE")then return;end;
uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
local tablica_obiektow_strony=self.tablica_obiektow_strony[nazwa_modolu];
--mw.logObject(tablica_obiektow_strony,nazwa_modolu);
local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
local techniczne_modul=require("Module:Techniczne");
local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
if(not tabela_parametrow_szablonu)then return nil;end;
__Funkcja(tabela_parametrow_szablonu,wywolanie);
if(__Funkcja2)then
__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
end;
GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
local pozycja_artykulu=nil;local nazwa=nil;
local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$")
if(not((pozycja_artykulu)and(nazwa)))then
pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
end;
local function Artykul(strona)
local nazwy_modul=require("Module:Nazwy");
local html_modul=require("Module:Html");
local parametry=html_modul["ParametryStronyAdresu"](strona);
local naglowek=html_modul["NagłówekStronyAdresu"](strona);
local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
else
return;
end;
end;
local id=nil;
local parametry;
local czy_pozycja_artykulu=nil;
if(not pozycja_artykulu)then
local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
if(link_szablon)then
local techniczne_modul=require("Module:Techniczne");
parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
local szablon=parametry[0];
if(szablon=="SpisTreści")then
pozycja_artykulu=parametry[1];
id=true;
elseif(szablon=="Sekcja referencyjna")then
local podstrona=parametry[3] or parametry["podstrona"];
local strona=parametry[1] or parametry["strona"];
if(not strona)then
local nazwy_modul=require("Module:Nazwy");
pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
else
pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
end;
nazwa=parametry["nazwa"] or parametry[2];
else
if(szablon=="Link wewnętrzny")then
local strona=parametry["strona"];
nazwa=parametry["nazwa"];
pozycja_artykulu=Artykul(strona);
czy_pozycja_artykulu=strona;
elseif(szablon=="LinkOgólne")then
local strona=parametry[1];
nazwa=parametry[2];
local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
if(miano_przestrzeni_nazw)then
czy_pozycja_artykulu=((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
else
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
end;
elseif(szablon=="LinkGłówna")then
pozycja_artykulu=Artykul(parametry[1])
czy_pozycja_artykulu=parametry[1];
nazwa=parametry[2];
elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikijunior..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.Wikibooks..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
czy_pozycja_artykulu=nazwy_np_modul.User..":"..parametry[1];
pozycja_artykulu=Artykul(czy_pozycja_artykulu);
nazwa=parametry[2];
elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
return nil,nil,false,parametry,true;
end;
end;
end;
else
local parametry_modul=require("Module:Parametry");
pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
if(czy_pozycja_artykulu)then
if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
pozycja_artykulu=czy_pozycja_artykulu;
else
pozycja_artykulu=nil;
end;
else
local czy_pozycja_artykulu=pozycja_artykulu;
pozycja_artykulu=Artykul(pozycja_artykulu);
if((not pozycja_artykulu)and(czy_pozycja_artykulu)and(not mw.ustring.match(czy_pozycja_artykulu,"[{}%[%]|]")))then
local kod_jezyka_koncowy="pl";
local kod_projektu_koncowy="b";
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,nazwa,kod_jezyka_koncowy,kod_projektu_koncowy,},false,nil,false;
else
return {pozycja_artykulu,nazwa},nil,false,nil,false;
end;
end;
end;
if((not pozycja_artykulu)and(czy_pozycja_artykulu))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(parametry["klucz projektu"],parametry["kod jezyka"],parametry["kod projektu"]);
local linki_modul=require("Module:Linki");
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(czy_pozycja_artykulu,kod_jezyka_koncowy,kod_projektu_koncowy,{});
return nil,{nazwa_strony_linku,parametry[2],kod_jezyka_koncowy,kod_projektu_koncowy},false,nil,false;
end;
return {pozycja_artykulu,nazwa},nil,id,parametry,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
local pf=frame:getParent();
local parametry_modul=require("Module:Parametry");
local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
local nazwa_strony;
local html_modul=require("Module:Html");
local nazwy_modul=require("Module:Nazwy");
local ksiazkowe_modul=require("Module:Książkowe");
local techniczne_modul=require("Module:Techniczne");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
nazwa_artykulu=frame.args["nazwa artykułu"];
nazwa_ksiazki=frame.args["nazwa książki"];
local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
local czy_aktualna_strona=nil;
if((not nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=1;
nazwa_strony="";
elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
czy_aktualna_strona=2;
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
else
nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
end;
local link = function(adres_linku,nazwa_linku,klasa,styl)
local czy_klasa=parametry_modul.CzyTak(klasa);
local czy_styl=parametry_modul.CzyTak(styl);
if(czy_klasa or czy_styl)then
spanramka=mw.html.create('span');
if(czy_klasa)then spanramka:attr("class",klasa);end;
if(czy_styl)then spanramka:attr('style',styl);end;
spanramka:wikitext(nazwa_linku);
local kod_html=spanramka:allDone();
return "[["..adres_linku.."|"..tostring(kod_html).."]]";
else
return "[["..adres_linku.."|"..nazwa_linku.."]]";
end;
end;
local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
divramka=mw.html.create('div');
local parametry_modul=require("Module:Parametry");
local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"wzór_"..uchwyt);
else
if(numeracja)then
divramka:attr('id',"wzór_"..numeracja);
else
divramka:attr('id',"wzór_"..uchwyt);
end;
end;
end;
if(parametry_modul.CzyTak(styl_main))then
divramka:attr('style',styl_main);
end;
local uchwyt_fun=function()
if(parametry_modul.CzyTak(uchwyt))then
local divuchwytramka=mw.html.create('div');
divuchwytramka:attr('class',klasa_numeracji);
divuchwytramka:attr('style',styl_numeracji);
if(parametry_modul.CzyTak(bez_automatu))then
divuchwytramka:wikitext('(',uchwyt..")");
else
if(numeracja)then
divuchwytramka:wikitext('('..numeracja..")");
else
divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
end;
end;
divramka:node(divuchwytramka);
end;
end;
local pole_odstepu_fun=function()
divramka:addClass("wzory");
local divramka2=mw.html.create('div');
divramka2:attr('style',styl_odstepu);
divramka2:wikitext(pole_odstepu);
divramka:node(divramka2);
end;
local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
if(parametry_modul.CzyTak(opis))then
local divramka5=mw.html.create('div')
divramka5:attr('class',klasa_opisu)
divramka5:attr('style',styl_opisu)
divramka5:wikitext(wzor_opisu)
divramka:node(divramka5)
else
local divramka5=mw.html.create('div');
divramka5:attr('style',styl_alternatywy_opisu);
divramka:node(divramka5)
end;
end;
if(not czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
local divramka4=mw.html.create('div');
divramka4:attr('class',klasa_wzoru);
divramka4:attr('style',styl_wzoru);
divramka4:wikitext(wzor);
divramka:node(divramka4);
opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
if(czy_pozycja_numeracji_prawa)then
uchwyt_fun();
else
pole_odstepu_fun();
end;
return tostring(divramka:allDone());
end;
local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
local divramka=mw.html.create('div');
divramka:attr('class',klasa);
divramka:attr('style',styl);
local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
if(czy_uchwyt)then
if(numeracja)then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',"rysunek_"..uchwyt);
else
divramka:attr('id',"rysunek_"..numeracja);
end;
else
divramka:attr('id',"rysunek_"..uchwyt);
end;
end;
local czy_opis=parametry_modul.CzyTak(opis);
local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
divramka:wikitext(wywolanie_rysunku);
return tostring(divramka:allDone());
end;
local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
local divramka=mw.html.create('div');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
divramka:attr('id',przedrostek.."_"..uchwyt);
else
divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
end;
end;
divramka:attr('class',klasa);
divramka:attr('style',styl);
local wikitext="";
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
wikitext="("..przedrostek2.." "..uchwyt..")";
else
if(numeracja)then
wikitext="("..przedrostek2.." "..numeracja..")";
else
wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
end;
end;
end;
if(parametry_modul.CzyTak(styl_naglowka))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_naglowka);
spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
divramka:node(spanramka);
else
divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
end;
divramka:wikitext('<BR>');
if(parametry_modul.CzyTak(styl_tekstu))then
local spanramka=mw.html.create('span');
spanramka:attr('style',styl_tekstu);
spanramka:wikitext(tekst);
divramka:node(spanramka);
else
divramka:wikitext(tekst);
end;
return tostring(divramka:allDone());
end;
local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
local spanramka=mw.html.create('sup');
spanramka:attr('style',klasa);
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
spanramka:attr('id',przedrostek_id.."_"..numeracja);
else
spanramka:attr('id',przedrostek_id.."_"..uchwyt);
end;
end;
end;
spanramka:attr('style',styl);
local smallramka=mw.html.create('small');
if(parametry_modul.CzyTak(uchwyt))then
if(parametry_modul.CzyTak(bez_automatu))then
smallramka:wikitext(prefiks..": "..uchwyt);
else
if(parametry_modul.CzyTak(numeracja))then
smallramka:wikitext('['..prefiks..": "..numeracja..']');
else
smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
end;
end;
else
smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
end;
spanramka:node(smallramka);
return tostring(spanramka:allDone());
end;
local nazwa_strony_fun=function(nazwa_strony)
if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
return "";
end;
return nazwa_strony;
end;
if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(uchwyt_obiektu)then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
else
return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
end;
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return uchwyt_obiektu;
end;
else
return uchwyt_obiektu;
end;
end;
local tabela_listy_uchwytow_i_numeracji_na_stronie;
if(czy_aktualna_strona==nil)then
local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
if(dane_analizy_artykulu)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
end;
elseif(czy_aktualna_strona==1)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
elseif(czy_aktualna_strona==2)then
tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
if(lista_artykolow)then
local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
if(tabela_listy_analizy_na_stronie)then
tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
end;
end;
end;
end;
if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
if(spis_uchwytow)then
if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
for _, dany_artykul in ipairs(spis_uchwytow)do
if(dany_artykul[1]==uchwyt_obiektu)then
if(nazwa_obiektu~="Śródtytuł")then
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
if(not dany_artykul[2])then
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
end;
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
end;
else
if(dany_artykul[2])then
local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
if(tytul_szablonu=="LinkŚródtytuł")then
return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
end;
end;
end;
end;
end;
end;
end;
end;
if(frame.args["obiekt"])then
if(frame.args["obiekt"]=="link")then
local nazwa_strony=nazwa_strony_fun(nazwa_strony);
return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
elseif(frame.args["obiekt"]=="wzór")then
return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="rysunek")then
return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="wypowiedzenie")then
return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
elseif(frame.args["obiekt"]=="punkt")then
return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
else
return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
end;
end;
return p;
9jntiw7eghtr770uafphxzz2ymnls1f
Szablon:Szablon nie opis/opis
10
58225
438790
436582
2022-08-26T12:23:45Z
Persino
2851
/* Użycie */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon wstawiany na strony szablonów lub modułów (do jego opisów tylko, ze względu na specyfikę przestrzeni nazw {{Np|Module|link=tak}}) do stron ich opisu lub nie, i zwraca nazwę szablonu nie opisu, do której należy ten ta strona.
== Opis parametrów ==
Szablon przyjmuje parametry modułu pudełek {{m|Pudełko}}, które się używa dla celów testowania tego szablonu, lub na stronach opisu, a także parametr {{Parametr|strona|opis}}.
Zwykle ten szablon nie używa się z parametrami, ale jedyny niepudełkowy parametrem jest:
* {{Code|pełna}} - jeśli niepusta, szablon zwraca nazwę strony z przestrzenią nazw, w przeciwnym wypadku już nie.
== Przykład ==
Szablon {{s|Szablon nie opis}} powinno się używać bez parametrów, z parametrami używamy dla celów testowych, za wyjątkiem parametru {{Parametr|pełna|tak}}.
=== Przestrzenie obsługiwane ===
==== Przestrzeń nazw {{Np|Template|link=tak}} ====
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny/opis}}
}}
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny}}
}}
===== Wniosek =====
* Widzimy, że w dwóch przypadkach szablon - opis, ten szablon zwraca ten sam wynik.
==== Przestrzeń nazw {{Np|Module|link=tak}} ====
===== Szablon wstawiamy na stronę {{m|Mapa/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa/opis}}
}}
===== Szablon wstawiamy na stronę {{m|Mapa}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa}}
}}
===== Wniosek =====
* Widzimy, że w dwóch przypadkach szablon - opis, ten szablon zwraca ten sam wynik.
=== Inne przestrzenie ===
----
==== Szablon wstawiamy na stronę {{s|Wikijunior:Mapa/opis}}, tutaj użyjemy symulację tego miejsca====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Wikijunior|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Mapa/opis}}
}}
==== Szablon wstawiamy na stronę {{s|Wikijunior:Mapa}}, tutaj zasymulujemy to miejsce ====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Wikijunior|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Mapa}}
}}
==== Wniosek ====
Widzimy, że w dwóch powyższych przypadkach szablon zwrócił błąd.
=== Z parametrem {{Parametr|pełna|tak}} ===
==== Przestrzeń nazw {{Np|Template|link=tak}} ====
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny/opis}}
}}
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny}}
}}
===== Wniosek =====
Widzimy, że w dwóch powyższych przypadkach szablon zwraca ten sam wynik.
==== Przestrzeń nazw {{Np|Module|link=tak}} ====
===== Szablon wstawiamy na stronę {{m|Mapa/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa/opis}}
}}
===== Szablon wstawiamy na stronę {{m|Mapa}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa}}
}}
===== Wniosek =====
Widzimy, że w dwóch powyższych przypadkach szablon zwraca ten sam wynik.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"pełna": {
"description": "Jeśli niepusta, szablon zwraca pełną nazwę szablonu, w przeciwnym wypadku nazwę szablonu.",
"type": "string",
"suggested": true
}
},
"description": "Szablon do zwracania nazw szablonów lub pełnych nazw szablonu, jeśli szablon wstawimy na stronę w przestrzeni nazw Szablon lub Moduł, na stronę szablonu lub jego stronę opisu, w innych przestrzeniach szablon zwraca błąd."
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony}}
</includeonly>
2vwj56xn7maad7wcgk867wzn00ev71j
438791
438790
2022-08-26T12:24:16Z
Persino
2851
/* Użycie */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon wstawiany na strony szablonów lub modułów (do jego opisów tylko, ze względu na specyfikę przestrzeni nazw {{Np|Module|link=tak}}) do stron ich opisu lub nie, i zwraca nazwę szablonu nie opisu, do której należy ta strona.
== Opis parametrów ==
Szablon przyjmuje parametry modułu pudełek {{m|Pudełko}}, które się używa dla celów testowania tego szablonu, lub na stronach opisu, a także parametr {{Parametr|strona|opis}}.
Zwykle ten szablon nie używa się z parametrami, ale jedyny niepudełkowy parametrem jest:
* {{Code|pełna}} - jeśli niepusta, szablon zwraca nazwę strony z przestrzenią nazw, w przeciwnym wypadku już nie.
== Przykład ==
Szablon {{s|Szablon nie opis}} powinno się używać bez parametrów, z parametrami używamy dla celów testowych, za wyjątkiem parametru {{Parametr|pełna|tak}}.
=== Przestrzenie obsługiwane ===
==== Przestrzeń nazw {{Np|Template|link=tak}} ====
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny/opis}}
}}
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny}}
}}
===== Wniosek =====
* Widzimy, że w dwóch przypadkach szablon - opis, ten szablon zwraca ten sam wynik.
==== Przestrzeń nazw {{Np|Module|link=tak}} ====
===== Szablon wstawiamy na stronę {{m|Mapa/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa/opis}}
}}
===== Szablon wstawiamy na stronę {{m|Mapa}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa}}
}}
===== Wniosek =====
* Widzimy, że w dwóch przypadkach szablon - opis, ten szablon zwraca ten sam wynik.
=== Inne przestrzenie ===
----
==== Szablon wstawiamy na stronę {{s|Wikijunior:Mapa/opis}}, tutaj użyjemy symulację tego miejsca====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Wikijunior|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Mapa/opis}}
}}
==== Szablon wstawiamy na stronę {{s|Wikijunior:Mapa}}, tutaj zasymulujemy to miejsce ====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Wikijunior|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Mapa}}
}}
==== Wniosek ====
Widzimy, że w dwóch powyższych przypadkach szablon zwrócił błąd.
=== Z parametrem {{Parametr|pełna|tak}} ===
==== Przestrzeń nazw {{Np|Template|link=tak}} ====
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny/opis}}
}}
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny}}
}}
===== Wniosek =====
Widzimy, że w dwóch powyższych przypadkach szablon zwraca ten sam wynik.
==== Przestrzeń nazw {{Np|Module|link=tak}} ====
===== Szablon wstawiamy na stronę {{m|Mapa/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa/opis}}
}}
===== Szablon wstawiamy na stronę {{m|Mapa}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa}}
}}
===== Wniosek =====
Widzimy, że w dwóch powyższych przypadkach szablon zwraca ten sam wynik.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"pełna": {
"description": "Jeśli niepusta, szablon zwraca pełną nazwę szablonu, w przeciwnym wypadku nazwę szablonu.",
"type": "string",
"suggested": true
}
},
"description": "Szablon do zwracania nazw szablonów lub pełnych nazw szablonu, jeśli szablon wstawimy na stronę w przestrzeni nazw Szablon lub Moduł, na stronę szablonu lub jego stronę opisu, w innych przestrzeniach szablon zwraca błąd."
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony}}
</includeonly>
isuuwwy4ef1a93hwqgwwdczoumq5y3s
438792
438791
2022-08-26T12:40:45Z
Persino
2851
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon wstawiany na strony szablonów lub modułów (do jego opisów tylko, ze względu na specyfikę przestrzeni nazw {{Np|Module|link=tak}}) do stron ich opisu lub nie, i zwraca nazwę szablonu nie opisu, w której wywołano go.
== Opis parametrów ==
Szablon przyjmuje parametry modułu pudełek {{m|Pudełko}}, które się używa dla celów testowania tego szablonu, lub na stronach opisu, a także parametr {{Parametr|strona|opis}}.
Zwykle ten szablon nie używa się z parametrami, ale jedyny niepudełkowy parametrem jest:
* {{Code|pełna}} - jeśli niepusta, szablon zwraca nazwę strony z przestrzenią nazw, w przeciwnym wypadku już nie.
== Przykład ==
Szablon {{s|Szablon nie opis}} powinno się używać bez parametrów, z parametrami używamy dla celów testowych, za wyjątkiem parametru {{Parametr|pełna|tak}}.
=== Przestrzenie obsługiwane ===
==== Przestrzeń nazw {{Np|Template|link=tak}} ====
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny/opis}}
}}
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny}}
}}
===== Wniosek =====
* Widzimy, że w dwóch przypadkach szablon - opis, ten szablon zwraca ten sam wynik.
==== Przestrzeń nazw {{Np|Module|link=tak}} ====
===== Szablon wstawiamy na stronę {{m|Mapa/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa/opis}}
}}
===== Szablon wstawiamy na stronę {{m|Mapa}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa}}
}}
===== Wniosek =====
* Widzimy, że w dwóch przypadkach szablon - opis, ten szablon zwraca ten sam wynik.
=== Inne przestrzenie ===
----
==== Szablon wstawiamy na stronę {{s|Wikijunior:Mapa/opis}}, tutaj użyjemy symulację tego miejsca====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Wikijunior|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Mapa/opis}}
}}
==== Szablon wstawiamy na stronę {{s|Wikijunior:Mapa}}, tutaj zasymulujemy to miejsce ====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Wikijunior|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Mapa}}
}}
==== Wniosek ====
Widzimy, że w dwóch powyższych przypadkach szablon zwrócił błąd.
=== Z parametrem {{Parametr|pełna|tak}} ===
==== Przestrzeń nazw {{Np|Template|link=tak}} ====
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny/opis}}
}}
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny}}
}}
===== Wniosek =====
Widzimy, że w dwóch powyższych przypadkach szablon zwraca ten sam wynik.
==== Przestrzeń nazw {{Np|Module|link=tak}} ====
===== Szablon wstawiamy na stronę {{m|Mapa/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa/opis}}
}}
===== Szablon wstawiamy na stronę {{m|Mapa}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa}}
}}
===== Wniosek =====
Widzimy, że w dwóch powyższych przypadkach szablon zwraca ten sam wynik.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"pełna": {
"description": "Jeśli niepusta, szablon zwraca pełną nazwę szablonu, w przeciwnym wypadku nazwę szablonu.",
"type": "string",
"suggested": true
}
},
"description": "Szablon do zwracania nazw szablonów lub pełnych nazw szablonu, jeśli szablon wstawimy na stronę w przestrzeni nazw Szablon lub Moduł, na stronę szablonu lub jego stronę opisu, w innych przestrzeniach szablon zwraca błąd."
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony}}
</includeonly>
6h1qgw5emurxxn1zjg7rrqa8ctbmq8l
438793
438792
2022-08-26T12:43:19Z
Persino
2851
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Szablon wstawiany na strony szablonów lub modułów (do jego opisów tylko, ze względu na specyfikę przestrzeni nazw {{Np|Module|link=tak}}) do stron ich opisu lub nie, i zwraca nazwę szablonu nie opisu, czyli w której wywołano go, jeżeli szablon, lub też nazwę szablonu, do której należy ten opis.
== Opis parametrów ==
Szablon przyjmuje parametry modułu pudełek {{m|Pudełko}}, które się używa dla celów testowania tego szablonu, lub na stronach opisu, a także parametr {{Parametr|strona|opis}}.
Zwykle ten szablon nie używa się z parametrami, ale jedyny niepudełkowy parametrem jest:
* {{Code|pełna}} - jeśli niepusta, szablon zwraca nazwę strony z przestrzenią nazw, w przeciwnym wypadku już nie.
== Przykład ==
Szablon {{s|Szablon nie opis}} powinno się używać bez parametrów, z parametrami używamy dla celów testowych, za wyjątkiem parametru {{Parametr|pełna|tak}}.
=== Przestrzenie obsługiwane ===
==== Przestrzeń nazw {{Np|Template|link=tak}} ====
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny/opis}}
}}
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny}}
}}
===== Wniosek =====
* Widzimy, że w dwóch przypadkach szablon - opis, ten szablon zwraca ten sam wynik.
==== Przestrzeń nazw {{Np|Module|link=tak}} ====
===== Szablon wstawiamy na stronę {{m|Mapa/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa/opis}}
}}
===== Szablon wstawiamy na stronę {{m|Mapa}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa}}
}}
===== Wniosek =====
* Widzimy, że w dwóch przypadkach szablon - opis, ten szablon zwraca ten sam wynik.
=== Inne przestrzenie ===
----
==== Szablon wstawiamy na stronę {{s|Wikijunior:Mapa/opis}}, tutaj użyjemy symulację tego miejsca====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Wikijunior|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Mapa/opis}}
}}
==== Szablon wstawiamy na stronę {{s|Wikijunior:Mapa}}, tutaj zasymulujemy to miejsce ====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|nazwa przestrzeni nazw{{=}}Wikijunior|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Mapa}}
}}
==== Wniosek ====
Widzimy, że w dwóch powyższych przypadkach szablon zwrócił błąd.
=== Z parametrem {{Parametr|pełna|tak}} ===
==== Przestrzeń nazw {{Np|Template|link=tak}} ====
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny/opis}}
}}
===== Szablon wstawiamy na stronę {{s|Link wewnętrzny}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Template|nazwa jednostki{{=}}Link wewnętrzny}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Template|nazwa jednostki=Link wewnętrzny}}
}}
===== Wniosek =====
Widzimy, że w dwóch powyższych przypadkach szablon zwraca ten sam wynik.
==== Przestrzeń nazw {{Np|Module|link=tak}} ====
===== Szablon wstawiamy na stronę {{m|Mapa/opis}}, tutaj użyjemy symulację tego miejsca=====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa/opis}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa/opis}}
}}
===== Szablon wstawiamy na stronę {{m|Mapa}}, tutaj zasymulujemy to miejsce =====
{{Pre|
{{Strong|Przykład}}
{{s|Szablon nie opis|pełna{{=}}tak|nazwa przestrzeni nazw{{=}}Module|nazwa jednostki{{=}}Mapa}}
{{Strong|Wynik}}
{{Szablon nie opis|pełna=tak|nazwa przestrzeni nazw=Module|nazwa jednostki=Mapa}}
}}
===== Wniosek =====
Widzimy, że w dwóch powyższych przypadkach szablon zwraca ten sam wynik.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"pełna": {
"description": "Jeśli niepusta, szablon zwraca pełną nazwę szablonu, w przeciwnym wypadku nazwę szablonu.",
"type": "string",
"suggested": true
}
},
"description": "Szablon do zwracania nazw szablonów lub pełnych nazw szablonu, jeśli szablon wstawimy na stronę w przestrzeni nazw Szablon lub Moduł, na stronę szablonu lub jego stronę opisu, w innych przestrzeniach szablon zwraca błąd."
}
</templatedata>
== Zobacz też ==
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Szablony}}
</includeonly>
ram0rjm36eosoelooo8s8t1fjj22s54
Moduł:Dymki
828
58459
438815
433737
2022-08-27T04:27:23Z
Persino
2851
Scribunto
text/plain
local p={};
p["UzyskajOpisOdParametrówLinku"] = function(frame)
local kod=frame.args[1];
local href_new=frame.args[2];
local href_old=frame.args[3];
local kod_i_opis={
------------------------------------------------------------------------------
--bez zapytania
------------------------------------------------------------------------------
["su"]="Strona zawiera adres URL.",
["sun"]="Strona, z nagłówkiem, zawiera adres URL.",
["iw"]="Strona istnieje na tej wiki.",
["inw"]="Strona, z nagłówkiem, istnieje na tej wiki.",
["iwew"]="Strona, istnieje na tej wiki, jako element wikidanych.",
["inwew"]="Strona, z nagłówkiem, istnieje na tej wiki, jako element wikidanych.",
["iew"]="Strona, istnieje, jako element wikidanych.",
["inew"]="Strona, z nagłówkiem, istnieje, jako element wikidanych.",
["niw"]="Strona nie istnieje na tej wiki.",
["ninw"]="Strona, z nagłówkiem, nie istnieje na tej wiki.",
["niew"]="Strona, nie istnieje, jako element wikidanych.",
["ninew"]="Strona, z nagłówkiem, nie istnieje, jako element wikidanych.",
["was"]="Link, z nieaktywnym odnośnikiem, wskazuje na aktualną stronę.",
["wasew"]="Link, z nieaktywnym odnośnikiem, wskazuje na aktualną stronę jako element wikidanych.",
["wash"]="Link, z aktywnym odnośnikiem, wskazuje na aktualną stronę.",
["washew"]="Link, z aktywnym odnośnikiem, wskazuje na aktualną stronę jako element wikidanych.",
["wasn"]="Link, z nagłówkiem, wskazuje na aktualną stronę.",
["wasnew"]="Link, z nagłówkiem, wskazuje na aktualną stronę jako element wikidanych.",
["ipw"]="Link wskazuje na stronę niebędącą elementem wikidanych.",
["inpw"]="Link, z nagłówkiem, wskazuje na stronę niebędącą elementem wikidanych.",
["dwni"]="Link wskazuje na stronę do wiki, która nie istnieje.",
-------------------------------------------------------------------------------
--z zapytaniem
-------------------------------------------------------------------------------
["sup"]="Strona, z zapytaniem, zawiera adres URL.",
["sunp"]="Strona, z zapytaniem i nagłówkiem, zawiera adres URL.",
["iwp"]="Strona, z zapytaniem, istnieje na tej wiki.",
["inwp"]="Strona, z zapytaniem i nagłówkiem, istnieje na tej wiki.",
["iwewp"]="Strona, z zapytaniem, istnieje na tej wiki, jako element wikidanych.",
["inwewp"]="Strona, z zapytaniem, nagłówkiem, istnieje na tej wiki, jako element wikidanych.",
["iewp"]="Strona, z zapytaniem, istnieje, jako element wikidanych.",
["inewp"]="Strona, z zapytaniem i nagłówkiem, istnieje, jako element wikidanych.",
["niwp"]="Strona, z zapytaniem, nie istnieje na tej wiki.",
["ninwp"]="Strona, z zapytaniem i nagłówkiem, nie istnieje na tej wiki.",
["niewp"]="Strona, z zapytaniem, nie istnieje, jako element wikidanych.",
["ninewp"]="Strona, z zapytaniem i nagłówkiem, nie istnieje, jako element wikidanych.",
["wasp"]="Link, z zapytaniem, wskazuje na aktualną stronę.",
["wasewp"]="Link, z zapytaniem, wskazuje na aktualną stronę jako element wikidanych.",
["washp"]="Link, z zapytaniem, z aktywnym odnośnikiem, wskazuje na aktualną stronę.",
["washewp"]="Link, z zapytaniem, z aktywnym odnośnikiem, wskazuje na aktualną stronę jako element wikidanych.",
["wasnp"]="Link, z zapytaniem i nagłówkiem, wskazuje na aktualną stronę.",
["wasnewp"]="Link, z zapytaniem i nagłówkiem, wskazuje na aktualną stronę jako element wikidanych.",
["ipwp"]="Link, z zapytaniem, wskazuje na stronę niebędącą elementem wikidanych.",
["inpwp"]="Link, z zapytaniem i nagłówkiem, wskazuje na stronę niebędącą elementem wikidanych.",
["dwnip"]="Link, z zapytaniem, wskazuje na stronę do wiki, która nie istnieje.",
};
local linki_modul=require("Module:Linki");
local parametry_modul=require("Module:Parametry");
local nazwy_modul=require("Module:Nazwy");
local href=((href_new~="")and ((parametry_modul.CzyTak(href_old) and (href_new==href_old)) and href_new or (parametry_modul.CzyTak(href_old) and href_old or href_new)) or nazwy_modul["PEŁNANAZWASTRONY"]());
local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,bez_przetwarzania,bez_znacznikow,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"]{["strona"]=href,};
local kod_jezyka_koncowy;local kod_projektu_koncowy;local nazwa_serwisu;local wersja_jezykowa;
local nazwa_przestrzeni_nazw;local pelna_nazwa_strony;local nazwa_artykulu;local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_strony;
local informacja=(kod_i_opis[kod] or "");
local czy_wiki_url=false;
local wiki_modul=require("Module:Wiki");
if(not czy_url)then
kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku);
local tablica_kodow_strony={};
local linki_modul=require("Module:Linki");
local kod_jezyka_poczatkowy;local kod_projektu_poczatkowy;
nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=linki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,tablica_kodow_strony);
local lang_modul=require("Module:Lang");
nazwa_serwisu=nazwy_modul["NAZWASERWISU"]{args={["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,}};
wersja_jezykowa=lang_modul["hasło"]{args={[1]=kod_jezyka_koncowy or "pl",}};
local pudelko_modul=require("Module:Pudełko");
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local tablica_aliasow_kodow_projektow=wiki_interwiki_modul.tablica_aliasow_kodow_projektow;
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu_koncowy];
czy_wiki_url=mw.ustring.match(url,"/wiki/$1$");
if(czy_wiki_url)then
local czy_nie_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku);
----
local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony);
local czy_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku);
if(not czy_pusta_nazwa_strony_linku)then
local linki_modul=require("Module:Linki");
nazwa_strony_linku,_=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony);
end;
----
nazwa_strony_linku=((parametry_modul.CzyTak(nazwa_strony_linku))and nazwa_strony_linku or (((kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())) and nazwy_modul["PEŁNANAZWASTRONY"]() or nil));
if(not parametry_modul.CzyTak(nazwa_strony_linku))then
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu_koncowy];
nazwa_strony_linku=((kod_jezyka_koncowy=="pl")and "Strona główna" or "Main Page");
end;
if(parametry_modul.CzyTak(nazwa_strony_linku))then
nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{["nazwa"]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
nazwa_przestrzeni_nazw_po_polsku=nazwy_modul["NpDane"]{["nazwa"]=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["wyświetlana"]="tak",["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
pelna_nazwa_strony=parametry_modul["Odstępy"]{[1]=nazwa_strony_linku,[2]="tak",};
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]{["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"]{["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
nazwa_przestrzeni_ksiazki=nazwy_modul["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"]{["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
nazwa_strony=nazwy_modul["NAZWASTRONY"]{["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
end;
end;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np")
local div_info=mw.html.create('div');
div_info:css('font-size',"90%");
div_info:css('line-height','1.4em');
local div_informacja=mw.html.create('div');
local strong_informacja=mw.html.create("strong");
strong_informacja:css('color','blue');
strong_informacja:wikitext("Informacja o linku: ");
local span_informacja=mw.html.create('span');
span_informacja:wikitext(informacja);
div_informacja:node(strong_informacja)
div_informacja:node(span_informacja);
div_info:node(div_informacja);
if(not czy_url)then
local latki_modul=require("Module:Łatki");
local args={["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
local odniesienia=latki_modul["są interwiki"]{args=args,};
if((parametry_modul.CzyTak(odniesienia))and(odniesienia>0))then
local div_wikidane=mw.html.create('div');
local strong_wikidane=mw.html.create('strong');
strong_wikidane:css('color','blue');
strong_wikidane:wikitext("Liczba odniesień wikidanych: ");
local span_wikidane=mw.html.create('span');
span_wikidane:wikitext(odniesienia);
span_wikidane:wikitext(".");
div_wikidane:node(strong_wikidane);
div_wikidane:node(span_wikidane);
div_info:node(div_wikidane);
end;
local div_projekt_jezykowy=mw.html.create('div');
local strong_projekt=mw.html.create('strong');
strong_projekt:wikitext("Projekt: ");
strong_projekt:css('color','blue');
local span_projekt=mw.html.create('span');
span_projekt:wikitext(nazwa_serwisu);
span_projekt:wikitext('. ');
local strong_jezyk=mw.html.create('strong');
strong_jezyk:wikitext("Wersja językowa: ");
strong_jezyk:css('color','blue');
local span_jezyk=mw.html.create('span');
span_jezyk:wikitext(wersja_jezykowa);
span_jezyk:wikitext('.');
div_projekt_jezykowy:node(strong_projekt);
div_projekt_jezykowy:node(span_projekt);
div_projekt_jezykowy:node(strong_jezyk);
div_projekt_jezykowy:node(span_jezyk);
div_info:node(div_projekt_jezykowy);
if(czy_wiki_url)then
local div_przestrzen=mw.html.create('div');
local strong_przestrzen=mw.html.create('strong');
strong_przestrzen:wikitext("Przestrzeń nazw: ");
strong_przestrzen:css('color','blue');
local span_przestrzen=mw.html.create('span');
local czy_ksiazkowe=((nazwa_przestrzeni_nazw_po_polsku==nazwy_np_modul.MainDisplayName)
or(nazwa_przestrzeni_nazw_po_polsku==nazwy_np_modul.Wikijunior));
if(czy_ksiazkowe)then
span_przestrzen:wikitext(nazwa_przestrzeni_nazw_po_polsku);
elseif(nazwa_przestrzeni_nazw~=nazwa_przestrzeni_ksiazki)then
span_przestrzen:wikitext(nazwa_przestrzeni_ksiazki);
else
span_przestrzen:wikitext(nazwa_przestrzeni_nazw_po_polsku);
end;
span_przestrzen:wikitext('. ');
div_przestrzen:node(strong_przestrzen);
div_przestrzen:node(span_przestrzen);
div_info:node(div_przestrzen);
local czy_artykul=(czy_ksiazkowe
or(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^Wikibooks:Brudnopis/[^/]*"))
or(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^Wikipedysta:[^/]*")));
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
local main_page=wiki_modul.WikidaneOdpowiednikStrony{
["nazwa strony"]=strona_glowna_tego_projektu,
["kod języka"]=kod_jezyka_koncowy,
["kod projektu"]=kod_projektu_koncowy,
} or ((kod_jezyka_koncowy=="pl")and "Strona główna" or "Main Page");
local czy_strona_glowna=(main_page==((not mw.ustring.match(nazwa_przestrzeni_ksiazki,"/")) and((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki..":") or "")
or (nazwa_przestrzeni_ksiazki..((nazwa_artykulu~="") and "/" or "")))..nazwa_ksiazki);
if(parametry_modul.CzyTak(naglowek_strony))then
local div_naglowek=mw.html.create('div');
local strong_naglowek=mw.html.create('strong');
strong_naglowek:wikitext("Nagłówek: ");
strong_naglowek:css('color','blue');
local span_naglowek=mw.html.create('span');
local naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony,"^[%s_]+","");
naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony_przetworzony,"[%s_]+$","");
naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony_przetworzony,"[%s_]+"," ");
span_naglowek:wikitext(naglowek_strony_przetworzony);
span_naglowek:wikitext('. ');
div_naglowek:node(strong_naglowek);
div_naglowek:node(span_naglowek);
div_info:node(div_naglowek);
end;
if(parametry_modul.CzyTak(nazwa_artykulu))then
local nazwa_rozdzialu;
local czy_rozdzial;
local div_artykulu=mw.html.create('div');
local strong_artykulu=mw.html.create('strong');
if(not czy_strona_glowna)then
if(czy_artykul)then
if(kod_projektu_koncowy=="b")then
czy_rozdzial=mw.ustring.match(nazwa_artykulu,"/");
if(czy_rozdzial)then
nazwa_rozdzialu,nazwa_artykulu=mw.ustring.match(nazwa_artykulu,"^([^/]*)/(.*)$");
end;
end;
if(kod_projektu_koncowy=="b")then
strong_artykulu:wikitext("Nazwa artykułu: ");
elseif(kod_projektu_koncowy=="s")then
strong_artykulu:wikitext("Nazwa rozdziału: ");
elseif(kod_projektu_koncowy=="v")then
strong_artykulu:wikitext("Nazwa tekstu: ");
elseif(kod_projektu_koncowy=="w")then
strong_artykulu:wikitext("Nazwa podartykułu: ");
elseif(kod_projektu_koncowy=="q")then
strong_artykulu:wikitext("Nazwa podcytatu: ");
elseif(kod_projektu_koncowy=="voy")then
strong_artykulu:wikitext("Nazwa submiejsca: ");
elseif(kod_projektu_koncowy=="wikt")then
strong_artykulu:wikitext("Nazwa podhasła: ");
elseif(kod_projektu_koncowy=="n")then
strong_artykulu:wikitext("Nazwa rozdziału tekstu: ");
else
strong_artykulu:wikitext("Nazwa modułu opisu: ");
end;
else
strong_artykulu:wikitext("Nazwa podstrony: ");
end;
else
strong_artykulu:wikitext("Moduł strony głównej: ");
end;
strong_artykulu:css('color','blue');
local span_artykulu=mw.html.create('span');
span_artykulu:wikitext(nazwa_artykulu);
span_artykulu:wikitext('. ');
div_artykulu:node(strong_artykulu);
div_artykulu:node(span_artykulu);
div_info:node(div_artykulu);
if(not czy_strona_glowna)then
if(czy_artykul)then
if(kod_projektu_koncowy=="b")then
if(czy_rozdzial)then
local strong_artykulu=mw.html.create('strong');
strong_artykulu:css('color','blue');
strong_artykulu:wikitext("Nazwa rozdziału: ");
local span_artykulu=mw.html.create('span');
span_artykulu:wikitext(nazwa_rozdzialu);
span_artykulu:wikitext('. ');
local div_artykulu=mw.html.create('div');
div_artykulu:node(strong_artykulu);
div_artykulu:node(span_artykulu);
div_info:node(div_artykulu);
end;
end;
end;
end;
local div_artykulu=mw.html.create('div');
local strong_artykulu=mw.html.create('strong');
if(not czy_strona_glowna)then
if(czy_artykul)then
if(kod_projektu_koncowy=="b")then
strong_artykulu:wikitext("Nazwa podręcznika: ");
elseif(kod_projektu_koncowy=="s")then
strong_artykulu:wikitext("Nazwa książki: ");
elseif(kod_projektu_koncowy=="v")then
strong_artykulu:wikitext("Nazwa skryptu: ");
elseif(kod_projektu_koncowy=="w")then
strong_artykulu:wikitext("Nazwa artykułu: ");
elseif(kod_projektu_koncowy=="q")then
strong_artykulu:wikitext("Nazwa cytatu: ");
elseif(kod_projektu_koncowy=="voy")then
strong_artykulu:wikitext("Nazwa miejsca: ");
elseif(kod_projektu_koncowy=="wikt")then
strong_artykulu:wikitext("Nazwa hasła: ");
elseif(kod_projektu_koncowy=="species")then
strong_artykulu:wikitext("Nazwa strony gatunku: ");
elseif(kod_projektu_koncowy=="n")then
strong_artykulu:wikitext("Nazwa tekstu wiadomości: ");
else
strong_artykulu:wikitext("Nazwa broszury: ");
end;
else
strong_artykulu:wikitext("Nazwa strony: ");
end;
else
strong_artykulu:wikitext("Nazwa strony głównej: ");
end;
strong_artykulu:css('color','blue');
local span_artykulu=mw.html.create('span');
span_artykulu:wikitext(nazwa_ksiazki);
span_artykulu:wikitext(".")
div_artykulu:node(strong_artykulu);
div_artykulu:node(span_artykulu);
div_info:node(div_artykulu);
else
local div_artykulu=mw.html.create('div');
local strong_artykulu=mw.html.create('strong');
if(not czy_strona_glowna)then
if(czy_artykul)then
if(kod_projektu_koncowy=="b")then
strong_artykulu:wikitext("Strona tytułowa podręcznika: ");
elseif(kod_projektu_koncowy=="s")then
strong_artykulu:wikitext("Strona tytułowa książki: ");
elseif(kod_projektu_koncowy=="v")then
strong_artykulu:wikitext("Strona tytułowa skryptu: ");
elseif(kod_projektu_koncowy=="w")then
strong_artykulu:wikitext("Strona artykułu: ");
elseif(kod_projektu_koncowy=="q")then
strong_artykulu:wikitext("Strona cytatu: ");
elseif(kod_projektu_koncowy=="voy")then
strong_artykulu:wikitext("Strona miejsca: ");
elseif(kod_projektu_koncowy=="wikt")then
strong_artykulu:wikitext("Strona hasła: ");
elseif(kod_projektu_koncowy=="species")then
strong_artykulu:wikitext("Strona gatunku: ");
elseif(kod_projektu_koncowy=="n")then
strong_artykulu:wikitext("Strona wiadomości: ");
else
strong_artykulu:wikitext("Strona broszury: ");
end;
else
strong_artykulu:wikitext("Strona: ");
end;
else
strong_artykulu:wikitext("Strona główna projektu: ");
end;
strong_artykulu:css('color','blue');
local span_artykulu=mw.html.create('span');
span_artykulu:wikitext(nazwa_ksiazki);
span_artykulu:wikitext(".")
div_artykulu:node(strong_artykulu);
div_artykulu:node(span_artykulu);
div_info:node(div_artykulu);
end;
end
end;
if((not czy_url)and(not czy_wiki_url)and(parametry_modul.CzyTak(nazwa_strony_linku)))then
local div_artykulu=mw.html.create('div');
local strong_artykulu=mw.html.create('strong');
strong_artykulu:wikitext("Nazwa strony: ");
strong_artykulu:css('color','blue');
local span_artykulu=mw.html.create('span');
span_artykulu:wikitext(nazwa_strony_linku);
span_artykulu:wikitext(".")
div_artykulu:node(strong_artykulu);
div_artykulu:node(span_artykulu);
div_info:node(div_artykulu);
elseif(czy_url)then
local html_modul=require("Module:Html");
local nazwa_strony_linku=html_modul["UrlBezProtokołu"](nazwa_strony_linku);
local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_linku);
local div_artykulu=mw.html.create('div');
local strong_artykulu=mw.html.create('strong');
strong_artykulu:wikitext("Nazwa serwera: ");
strong_artykulu:css('color','blue');
local span_artykulu=mw.html.create('span');
span_artykulu:wikitext(serwer);
span_artykulu:wikitext(".")
div_artykulu:node(strong_artykulu);
div_artykulu:node(span_artykulu);
div_info:node(div_artykulu);
if(parametry_modul.CzyTak(naglowek_strony))then
local div_naglowek=mw.html.create('div');
local strong_naglowek=mw.html.create('strong');
strong_naglowek:wikitext("Nagłówek identyfikatora: ");
strong_naglowek:css('color','blue');
local span_naglowek=mw.html.create('span');
local naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony,"^[%s_]+","");
naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony_przetworzony,"[%s_]+$","");
naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony_przetworzony,"[%s_]+"," ");
span_naglowek:wikitext(naglowek_strony_przetworzony);
span_naglowek:wikitext('. ');
div_naglowek:node(strong_naglowek);
div_naglowek:node(span_naglowek);
div_info:node(div_naglowek);
end;
if(parametry_modul.CzyTak(nazwa_strony)and(nazwa_strony~="/"))then
local div_artykulu=mw.html.create('div');
local strong_artykulu=mw.html.create('strong');
strong_artykulu:wikitext("Nazwa strony: ");
strong_artykulu:css('color','blue');
local span_artykulu=mw.html.create('span');
span_artykulu:wikitext(nazwa_strony);
span_artykulu:wikitext(".")
div_artykulu:node(strong_artykulu);
div_artykulu:node(span_artykulu);
div_info:node(div_artykulu);
end;
end;
return tostring(div_info:allDone());
end;
return p;
l7wva6wk9jrm8luptshghpe1ggp7kiq
Moduł:StronicowyParser/StronaSubst
828
58521
438834
438760
2022-08-27T09:15:56Z
Persino
2851
Scribunto
text/plain
local p={};
function p.AnalizaStronaSubst(tabela_listy_danych_analizy_ksiazki,pelnanazwastrony,TakFun,NieFun,FunRozdzial)
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
if(tabela_listy_danych_analizy_ksiazki)then
if(not tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
else
nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_artykulu;
end;
else
nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=pelnanazwastrony};
nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"]{nazwa=pelnanazwastrony};
nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]{nazwa=pelnanazwastrony};
end;
local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki
or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
local parametry_modul=require("Module:Parametry");
local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
if(lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then
local tab_lista_artykulow_w_ksiazce_spis=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
if(tab_lista_artykulow_w_ksiazce_spis)then
local tab_lista_artykulow_w_ksiazce=tab_lista_artykulow_w_ksiazce_spis.spis;
if(tab_lista_artykulow_w_ksiazce)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((((nazwa_przestrzeni==nazwy_np_modul.Main)
or(nazwa_przestrzeni==nazwy_np_modul.Wikijunior))and(mw.ustring.match(nazwa_ksiazki,"^[^/]+")))
or(mw.ustring.match(nazwa_ksiazki,"^"..nazwy_np_modul.Wikibooks..":Brudnopis/[^/]+/[^/]+$"))
or(mw.ustring.match(nazwa_ksiazki,"^"..nazwy_np_modul.User..":[^/]+/[^/]+$")))then
-----
local tab_artykul={};
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
if(tab_lista[2])then
for _,artykul_w_bazie_element in ipairs(tab_lista[2])do
local czy_table=parametry_modul.TypeTable(artykul_w_bazie_element[1]);
if(czy_table)then
artykul_w_bazie=artykul_w_bazie_element[1][1];
else
artykul_w_bazie=artykul_w_bazie_element[1];
end;
local artykul_z_naglowkiem_w_bazie_match=mw.ustring.match(artykul_w_bazie,"^([^#]*)#.*$");
artykul_bez_naglowka_w_bazie=artykul_z_naglowkiem_w_bazie_match or artykul_w_bazie;
if(not tab_artykul[artykul_bez_naglowka_w_bazie])then
if(not naglowek)then
tab_artykul[artykul_bez_naglowka_w_bazie]=true;
end
end;
end;
end;
end;
if(tab_artykul[nazwa_artykulu])then
return NieFun(nil);
end;
-----
local ksiazka=mw.ustring.match(nazwa_ksiazki,"([^/]+)$");
if((nazwa_artykulu~="Spis treści")and(nazwa_artykulu~="Bibliografia")and(nazwa_artykulu~="Licencja"))then
if((ksiazka==nazwa_artykulu)or(nazwa_artykulu=="Wersja do druku"))then
return TakFun(tab_lista_artykulow_w_ksiazce)
else
local function StronaRozdzial()
for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
if(rozdzial==nazwa_artykulu)then
return TakFun(frame);
end;
end;
return;
end;
if(not FunRozdzial)then
local val=StronaRozdzial();
if(val)then return val;end;
else
local val=FunRozdzial(tab_lista_artykulow_w_ksiazce,nazwa_artykulu);
if(not val)then return val;end;
end;
end;
end;
end;
end;
end;
end;
return NieFun(nil);
end;
p.LiczOperacjeStronZbiorczych=function(glowna_tablica,tekst_rozwiniety_calego_artykulu)
local nazwy_modul=require("Module:Nazwy");
local toc_nowe={};
local tab_powtarzane={};
local function Powtarzane(rozdzial)
local b=1;
for i=1,#tab_powtarzane,1 do
if(tab_powtarzane[i]==rozdzial)then
b=b+1;
end;
end;
tab_powtarzane[#tab_powtarzane+1]=rozdzial;
return b;
end;
local AnalizaStronZbiorczych=function()
local function CzyStronaSubst()
if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"])then
glowna_tablica.tabela_listy_danych_analizy_ksiazki["CzyStronaSubst"]="tak";
end;
end;
local function StronaSubstParametr(tab_strona,link,p,postep)
local strona;local id;
if(type(tab_strona)=="table")then strona=tab_strona[2];id=tab_strona[1];else strona=tab_strona;end;
local naglowek_strony;
local artykul;
local ile=0;
if(id)then
strona,_=mw.ustring.gsub(strona,"<[^<>]*>","");
--strona,_=mw.ustring.gsub(strona,"'+","");
naglowek_strony,ile=mw.ustring.gsub(id,"^([^#]*)#(.*)$","%2");
--artykul,_=id.gsub(id,"^([^#]*)#(.*)$","%1#"..strona);
else
naglowek_strony,ile=mw.ustring.gsub(strona,"^([^#]*)#(.*)$","%2");
--artykul=strona;
end;
local str="<div style=\"display:block;\" class=\"rozdział_książki\">\n";
local parametry_modul=require("Module:Parametry");
local czy_link=parametry_modul.CzyTak(link);
local nazwa_przestrzeni;local nazwa_ksiazki;
if(glowna_tablica.tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=glowna_tablica.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=glowna_tablica.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
local adres=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki.."/"..(id and id or strona);
p=p or 1;
p=(p<1)and 1 or p;
p=(p<=6)and p or 6;
if(not czy_link)then
local kotwica="";
if(id)then
id,_=mw.ustring.gsub(id,"^[%s_]*","");
id,_=mw.ustring.gsub(id,"[%s_]*$","");
id,_=mw.ustring.gsub(id,"[%s_]+","_");
kotwica="<span id=\""..id.."\"></span>";
end;
str=str..mw.ustring.rep("=",p)..kotwica..((ile==0) and mw.ustring.match(naglowek_strony,"/([^/]+)$") or naglowek_strony)..mw.ustring.rep("=",p).."\n";
else
local linki_modul=require("Module:Linki");
local str_link=linki_modul["Link wewnętrzny"]{
["strona"]=adres,
["nazwa"]=((ile==0) and mw.ustring.match(naglowek_strony,"/([^/]+)$") or naglowek_strony),
};
local kotwica="";
if(id)then
id,_=mw.ustring.gsub(id,"^[%s_]*","");
id,_=mw.ustring.gsub(id,"[%s_]*$","");
id,_=mw.ustring.gsub(id,"[%s_]+","_");
kotwica="<span id=\""..id.."\"></span>";
end;
str=str..mw.ustring.rep("=",p)..kotwica..str_link..mw.ustring.rep("=",p).."\n";
end;
if(postep)then
str=str.."<div class=\"postęp_ładowania_artykułu\"><div class=\"pasek_postępu\"></div> <span style=\"color:blue\">Ładuję artykuł...</span></div>";
end;
str=str.."<div class=\"strona_subst\" style=\"display:"..((not postep)and "block" or "none")..";\">"..((not czy_link) and (adres) or "").."</div>\n";
str=str.."</div>";
return str;
end;
local function StronaSubst(ciag)
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local parametry_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](ciag);
local postep=parametry_modul.CzyTak(parametry_szablonu["postęp"]);
local strona=parametry_szablonu[1];
local link=parametry_szablonu["link"];
local parametry_modul=require("Module:Parametry");
local czy_link=parametry_modul.CzyTak(link);
if(glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"]
and glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona]
and glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]
)then
return glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")];
end;
local naglowek=mw.ustring.match(strona,"/([^/]*)$") or strona;
--end;
local liczba_powtarzanego=Powtarzane(naglowek);
table.insert(toc_nowe,{{"#"..mw.ustring.gsub(naglowek,"[%s_]+","_")..((liczba_powtarzanego>1) and ("_"..liczba_powtarzanego) or ""), naglowek,},1,})
local str=StronaSubstParametr(strona,link,nil,postep);
if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"])then
glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"]={};
end;
if(not glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona])then
glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona]={};
end;
glowna_tablica.tabela_listy_danych_analizy_ksiazki["StronaSubst"][strona][(czy_link and "tak" or "")]=str;
return str;
end;
function AnalizujArtykulyRozdzialu(tab_lista_artykulow_w_ksiazce,substrona)
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local tablica_stron={};
for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
if(substrona==rozdzial)then
local function KsiazkaRozdzialSubst(ciag)
local techniczne_modul=require("Module:Techniczne");
local parametry_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](ciag);
if(parametry_szablonu[0]~="KsiążkaSubst")then return ciag;end;
local naglowki=parametry_modul.CzyTak(parametry_szablonu["nagłówki"]);
local postep=parametry_modul.CzyTak(parametry_szablonu["postęp"]);
if(tab_lista[2])then
local wikikod="";
for _,strona in ipairs(tab_lista[2])do
local PobierzParametr=parametry_modul.PobierzParametr(strona[1]);
local nazwa_strony=PobierzParametr(1);
nazwa_strony=html_modul["NazwaStronyAdresu"](nazwa_strony);
if(naglowki or not tablica_stron[nazwa_strony])then
if(not naglowki)then
tablica_stron[nazwa_strony]=true;
end;
local naglowek;
--if(mw.ustring.match(nazwa_strony,"^[^#]*#(.*)$"))then
-- naglowek=mw.ustring.gsub(nazwa_strony,"^[^#]*#(.*)$","%1");
--else
naglowek=mw.ustring.match(nazwa_strony,"/([^/]*)$") or nazwa_strony;
--end;
local liczba_powtarzanego=Powtarzane(naglowek);
table.insert(toc_nowe,{{"#"..mw.ustring.gsub(rozdzial,"[%s_]+","_")..((liczba_powtarzanego>1) and ("_"..liczba_powtarzanego) or ""), naglowek,},1,})
wikikod=((wikikod~="")and (wikikod.."\n") or "")..StronaSubstParametr(strona[1],nil,nil,postep);
end;
end;
glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod;
return wikikod;
end;
return "";
end;
local nazwa_przestrzeni=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
local nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
local stronicowyparser_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu,nil);
for szablon,kod,obiekt in iterator do
if(obiekt=="TEMPLATE")then
szablon,_=mw.ustring.gsub(szablon,"({{%s*[Ss]tronaSubst%s*|[^{}]+}})",StronaSubst);
szablon,_=mw.ustring.gsub(szablon,"({{%s*[Kk]siążkaSubst%s*|[^{}]*}})",KsiazkaRozdzialSubst);
szablon,_=mw.ustring.gsub(szablon,"({{%s*[Kk]siążkaSubst%s*}})",KsiazkaRozdzialSubst);
end;
end;
CzyStronaSubst();
break;
end;
end;
end;
function AnalizujKsiazka(tab_lista_artykulow_w_ksiazce)
local function KsiazkaCalaSubst(ciag)
local techniczne_modul=require("Module:Techniczne");
local parametry_modul=require("Module:Parametry");
local parametry_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](ciag);
if(parametry_szablonu[0]~="KsiążkaSubst")then return ciag;end;
local naglowki=parametry_modul.CzyTak(parametry_szablonu["nagłówki"]);
local sekcje=parametry_modul.CzyTak(parametry_szablonu["sekcje"]);
local postep=parametry_modul.CzyTak(parametry_szablonu["postęp"]);
local nazwa_przestrzeni;local nazwa_ksiazki;
if(glowna_tablica.tabela_listy_danych_analizy_ksiazki.zastepczy)then
nazwa_przestrzeni=glowna_tablica.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
nazwa_ksiazki=glowna_tablica.tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
else
nazwa_przestrzeni=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
nazwa_ksiazki=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
end;
local wikikod="<div id=\"klasa_książki\">";
local delta_m=0;
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local HNumer=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local parametry_modul=require("Module:Parametry");
local tablica_stron={};
local naglowki_ostatnie=nil;
local stronicowyparser_dalszefunkcje_modul=require("Module:StronicowyParser/DalszeFunkcje");
for _,tab_lista in pairs(tab_lista_artykulow_w_ksiazce)do
local rozdzial=tab_lista[1][1];
wikikod=wikikod.."<div class=\"klasa_naglowka klasa_nagłówka\">";
local m=tab_lista[1][2][1];
if((rozdzial)and(type(rozdzial)=="string")and(rozdzial~="")and(rozdzial~="Spis treści")and(rozdzial~="Bibliografia")and(rozdzial~="Zobacz też")and(rozdzial~="Inne")and(rozdzial~="Licencja")
)then
local m_uzyskane=HNumer(m);
wikikod=((wikikod~="")and (wikikod.."\n") or "").."\n"..mw.ustring.rep("=",m_uzyskane)..rozdzial..mw.ustring.rep("=",m_uzyskane).."\n";
local liczba_powtarzanego=Powtarzane(rozdzial);
table.insert(toc_nowe,{{"#"..mw.ustring.gsub(rozdzial,"[%s_]+","_")..((liczba_powtarzanego>1) and ("_"..liczba_powtarzanego) or ""), rozdzial,},m_uzyskane,})
end;
if(tab_lista[2])then
for _,strona in ipairs(tab_lista[2])do
local roznica=(strona[2][1]>0)and strona[2][1] or 0;
local m_roznica=m+roznica;
local m_uzyskane=HNumer(m_roznica);
local PobierzParametr=parametry_modul.PobierzParametr(strona[1]);
local nazwa_strony_parametr=PobierzParametr(1);
local nazwa_strony,_=mw.ustring.gsub(nazwa_strony_parametr,"^([^#]*)(#.*)$","%1");
local naglowek;
if(mw.ustring.match(nazwa_strony_parametr,"^[^#]*#(.*)$"))then
naglowek=mw.ustring.gsub(nazwa_strony_parametr,"^[^#]*#(.*)$","%1");
else
naglowek=mw.ustring.match(nazwa_strony_parametr,"/([^/]*)$") or nazwa_strony_parametr;
end;
local liczba_powtarzanego=Powtarzane(naglowek);
table.insert(toc_nowe,{{"#"..mw.ustring.gsub(naglowek,"[%s_]+","_")..((liczba_powtarzanego>1) and ("_"..liczba_powtarzanego) or ""), naglowek,},m_uzyskane,})
if((naglowki or (not tablica_stron[nazwa_strony]))and(not sekcje))then
if(not naglowki)then
tablica_stron[nazwa_strony]=true;
end;
wikikod=((wikikod~="")and (wikikod.."\n") or "")..StronaSubstParametr(strona[1],nil,m_uzyskane,postep);
elseif((sekcje)and(not tablica_stron[nazwa_strony]))then
tablica_stron[nazwa_strony]=true;
wikikod=((wikikod~="")and (wikikod.."\n") or "")..StronaSubstParametr(strona[1],nil,m_uzyskane);
local nazwa_modolu=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki.."/"..nazwa_strony;
local tekst_rozwiniety_calego_artykulu=stronicowyparser_dalszefunkcje_modul.SpreparowanyWikikodStrony(nil,nazwa_modolu);
if(tekst_rozwiniety_calego_artykulu)then
local toc=stronicowyparser_dalszefunkcje_modul.SpisTresciWstep(nil,tekst_rozwiniety_calego_artykulu);
if(toc)then
for licznik, element_w_tablicy in ipairs(toc)do
local naglowek_rozdzialu=element_w_tablicy[1][2];
local link=nazwa_strony..element_w_tablicy[1][1];
local poziom_rozdzialu=element_w_tablicy[2];
local poziom_rozdzialu_sekcji=HNumer(poziom_rozdzialu+m_roznica);
table.insert(toc_nowe,{{"#"..link, naglowek_rozdzialu,}, poziom_rozdzialu_sekcji, })
wikikod=((wikikod~="")and (wikikod.."\n") or "")..StronaSubstParametr(link,nil,poziom_rozdzialu_sekcji,postep);
end;
end;
end;
end;
end;
end;
wikikod=wikikod.."</div>";
end;
wikikod=wikikod.."</div>";
glowna_tablica.tabela_listy_danych_analizy_ksiazki["KsiążkaSubst"]=wikikod;
return wikikod;
end;
local nazwa_przestrzeni=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
local nazwa_ksiazki=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
local nazwa_artykulu=glowna_tablica.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
local nazwa_modolu=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
local stronicowyparser_modul=require("Module:StronicowyParser/Potrzebne");
local iterator=stronicowyparser_modul:IteratorSzablonu(tekst_rozwiniety_calego_artykulu,nazwa_modolu,nil);
for szablon,kod,obiekt in iterator do
if(obiekt=="TEMPLATE")then
szablon,_=mw.ustring.gsub(szablon,"({{%s*[Ss]tronaSubst%s*|[^{}]+}})",StronaSubst);
szablon,_=mw.ustring.gsub(szablon,"({{%s*[Kk]siążkaSubst%s*|[^{}]*}})",KsiazkaCalaSubst);
szablon,_=mw.ustring.gsub(szablon,"({{%s*[Kk]siążkaSubst%s*}})",KsiazkaCalaSubst);
end;
end;
CzyStronaSubst();
end;
local NieFun=function(parametr) return "";end;
local TakFun=function(tab_lista_artykulow_w_ksiazce)
AnalizujKsiazka(tab_lista_artykulow_w_ksiazce);
return "tak";
end;
local FunRozdzial=function(tab_lista_artykulow_w_ksiazce,substrona)
AnalizujArtykulyRozdzialu(tab_lista_artykulow_w_ksiazce,substrona);
return "tak";
end;
p.AnalizaStronaSubst(glowna_tablica.tabela_listy_danych_analizy_ksiazki,nil,TakFun,NieFun,FunRozdzial);
return "tak";
end;
local val=AnalizaStronZbiorczych();
glowna_tablica.tabela_listy_danych_analizy_ksiazki.TOC_StronaZbiorcza=toc_nowe;
return tekst_rozwiniety_calego_artykulu;
end;
return p;
8g99sht5l4bjct53ncpoop4qlwx08qw
Szablon:PEŁNANAZWAPRZESTRZENIKSIĄŻKI
10
58867
438812
2022-08-26T20:20:23Z
Persino
2851
Utworzono nową stronę "<includeonly>{{#invoke:Nazwy|PEŁNANAZWAPRZESTRZENIKSIĄŻKI}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry|=problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}}|1=;nazwa|nazwa=;1|klucz projektu=;kod języka;kod projektu|kod języka=;klucz projektu|kod projektu=;klucz projektu}}}}</includeonly><noinclude>{{Dokumentacja|Szablon:NAZWAKSIĄŻKI/opis}}</noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Nazwy|PEŁNANAZWAPRZESTRZENIKSIĄŻKI}}{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry|=problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}}|1=;nazwa|nazwa=;1|klucz projektu=;kod języka;kod projektu|kod języka=;klucz projektu|kod projektu=;klucz projektu}}}}</includeonly><noinclude>{{Dokumentacja|Szablon:NAZWAKSIĄŻKI/opis}}</noinclude>
hj336psl9p9namqfijji8nq2ny4au8o
Szablon:Bdo
10
58868
438845
2022-08-27T10:05:54Z
Persino
2851
Utworzono nową stronę "<includeonly>{{Znacznik|tag=bdo|id={{{id|}}}|styl={{{styl|}}}|klasa={{{klasa|}}}|atrybuty={{{atrybuty|}}}|{{{1|}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>"
wikitext
text/x-wiki
<includeonly>{{Znacznik|tag=bdo|id={{{id|}}}|styl={{{styl|}}}|klasa={{{klasa|}}}|atrybuty={{{atrybuty|}}}|{{{1|}}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
jzs0yaoypxcgswxx6tyxpg7cq04n09s
Szablon:Bdo/opis
10
58869
438849
2022-08-27T10:21:37Z
Persino
2851
Utworzono nową stronę "{{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Znacznik liniowy umieszczany w tekście pozwalający nadać temu elementowi pewne cechy kierunku układania tekstu od lewej do prawej lub odwrotnie, do tego szablonu jest bardzo potrzebny parametr: {{Parametr|styl|direction:ltr}} lub {{Parametr|styl|direction:rtl}}. To jest oparte na obsłudze tagów: {{Tag|bdo}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów…"
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Znacznik liniowy umieszczany w tekście pozwalający nadać temu elementowi pewne cechy kierunku układania tekstu od lewej do prawej lub odwrotnie, do tego szablonu jest bardzo potrzebny parametr: {{Parametr|styl|direction:ltr}} lub {{Parametr|styl|direction:rtl}}. To jest oparte na obsłudze tagów: {{Tag|bdo}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Test jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami.
== Opis parametrów ==
; Wywołanie
{{pre|{{s|Bdo|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}}
Szablon {{s|Bdo}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej.
; Parametry
* {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany,
* {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany,
* {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny,
* {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny,
* {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny.
----
Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany.
== Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) ==
Szablon {{s|Bdo}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się:
; Szablon {{s|Bdo}}
{{PreWikikod|Bdo}}
== Przykłady ==
Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu.
;Przykład
{{Pre|Oto jest tekst przed tym szablonem: {{s|Bdo|Oto jest tekst do analizy}}, a tutaj po.}}
;Wynik
{{Pre|Oto jest tekst przed tym szablonem: {{Bdo|Oto jest tekst do analizy}}, a tutaj po.}}
=== Tabelka z przykładami dla szablonu: {{s|Bdo}}, czyli przy znaczniku: {{Tag|Bdo}}===
Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{LinkSzablon|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu:
{{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}}
Zatem:
<templatestyles src="Szablon:Znacznik/przykłady.css" />
{{Tabela przykładów użycia szablonów|
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=tło obramowanie|3=id=przykład1|4=styl=direction:ltr;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=czcionka kolor tło obramowanie|4=styl=direction:ltr;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=id=przykład|4=styl=styl=direction:ltr;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=tło obramowanie|3=id=przykład1|4=styl=direction:rtl;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=czcionka kolor tło obramowanie|4=styl=direction:rtl;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=id=przykład|4=styl=styl=direction:rtl;}}
}}
Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|bdo}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Tekst, któremu można nadać pewne cechy.",
"type": "string",
"required": true
},
"styl": {
"description": "Styl CSS, właściwości i ich wartości.",
"type": "string"
},
"klasa": {
"description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.",
"type": "string"
},
"id": {
"description": "Unikatowy identyfikator.",
"type": "string",
"suggested": true
},
"atrybuty": {
"description": "Atrybuty, inne niż: id, style i class.",
"type": "string"
}
},
"paramOrder": [
"1",
"id",
"styl",
"klasa",
"atrybuty"
],
"description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span>...</span>."
}
</templatedata>
== Zobacz też ==
* {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami.
{{Szablony ramek formułujące kod}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony do formatowania tekstu
| Szablony ramek tworzące kod HTML
| Szablony znaczników
}}
</includeonly>
7icqkc3s84n91gz4t0bhqqw3chbu88z
438855
438849
2022-08-27T10:34:17Z
Persino
2851
/* Tabelka z przykładami dla szablonu: {{s|Bdo}}, czyli przy znaczniku: {{Tag|Bdo}} */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Znacznik liniowy umieszczany w tekście pozwalający nadać temu elementowi pewne cechy kierunku układania tekstu od lewej do prawej lub odwrotnie, do tego szablonu jest bardzo potrzebny parametr: {{Parametr|styl|direction:ltr}} lub {{Parametr|styl|direction:rtl}}. To jest oparte na obsłudze tagów: {{Tag|bdo}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Test jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami.
== Opis parametrów ==
; Wywołanie
{{pre|{{s|Bdo|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}}
Szablon {{s|Bdo}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej.
; Parametry
* {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany,
* {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany,
* {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny,
* {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny,
* {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny.
----
Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany.
== Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) ==
Szablon {{s|Bdo}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się:
; Szablon {{s|Bdo}}
{{PreWikikod|Bdo}}
== Przykłady ==
Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu.
;Przykład
{{Pre|Oto jest tekst przed tym szablonem: {{s|Bdo|Oto jest tekst do analizy}}, a tutaj po.}}
;Wynik
{{Pre|Oto jest tekst przed tym szablonem: {{Bdo|Oto jest tekst do analizy}}, a tutaj po.}}
=== Tabelka z przykładami dla szablonu: {{s|Bdo}}, czyli przy znaczniku: {{Tag|Bdo}}===
Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{LinkSzablon|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu:
{{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}}
Zatem:
<templatestyles src="Szablon:Znacznik/przykłady.css" />
{{Tabela przykładów użycia szablonów|
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=tło obramowanie|3=id=przykład1|4=styl=direction:ltr;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=czcionka kolor tło obramowanie|3=styl=direction:ltr;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=id=przykład|3=styl=direction:ltr;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=tło obramowanie|3=id=przykład1|4=styl=direction:rtl;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=klasa=czcionka kolor tło obramowanie|3=styl=direction:rtl;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=id=przykład|3=styl=direction:rtl;}}
}}
Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|bdo}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Tekst, któremu można nadać pewne cechy.",
"type": "string",
"required": true
},
"styl": {
"description": "Styl CSS, właściwości i ich wartości.",
"type": "string"
},
"klasa": {
"description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.",
"type": "string"
},
"id": {
"description": "Unikatowy identyfikator.",
"type": "string",
"suggested": true
},
"atrybuty": {
"description": "Atrybuty, inne niż: id, style i class.",
"type": "string"
}
},
"paramOrder": [
"1",
"id",
"styl",
"klasa",
"atrybuty"
],
"description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span>...</span>."
}
</templatedata>
== Zobacz też ==
* {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami.
{{Szablony ramek formułujące kod}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony do formatowania tekstu
| Szablony ramek tworzące kod HTML
| Szablony znaczników
}}
</includeonly>
obo0iw2627id88tnm872ustfvl118t3
438856
438855
2022-08-27T10:46:00Z
Persino
2851
/* Tabelka z przykładami dla szablonu: {{s|Bdo}}, czyli przy znaczniku: {{Tag|Bdo}} */
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Znacznik liniowy umieszczany w tekście pozwalający nadać temu elementowi pewne cechy kierunku układania tekstu od lewej do prawej lub odwrotnie, do tego szablonu jest bardzo potrzebny parametr: {{Parametr|styl|direction:ltr}} lub {{Parametr|styl|direction:rtl}}. To jest oparte na obsłudze tagów: {{Tag|bdo}} (jest to element liniowy) - (tagi języka HTML), oraz identyfikatorów: {{Code|id}}, styli: {{Code|style}} (właściwości i ich zawartości przedstawiający język CSS), klas: {{Code|class}} (reguł w kaskadowych arkuszach stylów) i atrybutów (inne niż: {{Code|id}}, {{Code|style}} i {{Code|class}}), elementu HTML. Test jest umieszczany, wewnątrz tego szablonu, pomiędzy tymi tagami.
== Opis parametrów ==
; Wywołanie
{{pre|{{s|Bdo|1{{=}}|id{{=}}|styl{{=}}|klasa{{=}}|atrybuty{{=}}}}}}
Szablon {{s|Bdo}}, przyjmuje argumenty, którego wartości wraz z odpowiednimi nazwami, oprócz zmiennej {{Code|1}}, w nim, wsadza on do tagu, coś w rodzaju: {{Tag|tag|parametry=nazwa="wartość"}}, obsługiwanego przez niego znacznika, przez którego on jest oparty, a oto lista tych zmiennych poniżej.
; Parametry
* {{Code|1}} - zawartość tekstu pomiędzy znacznikami - wymagany,
* {{Code|id}} - unikatowy identyfikator, znacznika - sugerowany,
* {{Code|styl}} - styl CSS znacznika - właściwości i ich wartości - opcjonalny,
* {{Code|klasa}} - reguły CSS, do klasy znacznika, czyli zbioru właściwości i ich wartości - opcjonalny,
* {{Code|atrybuty}} - atrybuty znacznika (inne niż: {{Code|id}}, {{Code|styl}} i {{Code|class}}) - opcjonalny.
----
Powyższe parametry oprócz pierwszego są opcjonalne za wyjątkiem parametru: {{Code|id}}, który jest sugerowany.
== Wikikod, zbudowany za pomocą szablonu znaczników (kombajnu) ==
Szablon {{s|Bdo}} ma kod w zależności od znacznika: {{s|Znacznik}}, przedstawiający się:
; Szablon {{s|Bdo}}
{{PreWikikod|Bdo}}
== Przykłady ==
Najprostszym możliwym przypadkiem jest nieużycie żadnego parametry tego szablonu.
;Przykład
{{Pre|Oto jest tekst przed tym szablonem: {{s|Bdo|Oto jest tekst do analizy}}, a tutaj po.}}
;Wynik
{{Pre|Oto jest tekst przed tym szablonem: {{Bdo|Oto jest tekst do analizy}}, a tutaj po.}}
=== Tabelka z przykładami dla szablonu: {{s|Bdo}}, czyli przy znaczniku: {{Tag|Bdo}}===
Style są w oparciu o kaskadowe arkusze stylów, które są napisane w stylach przykładów: {{LinkSzablon|Znacznik/przykłady.css}}. W poniższych przykładach należy pamiętać o napisaniu:
{{ŹródłoXml|{{Mniejszy}}templatestyles src{{=}}"Szablon:Znacznik/przykłady.css" /{{Większy}}}}
Zatem:
<templatestyles src="Szablon:Znacznik/przykłady.css" />
{{Tabela przykładów użycia szablonów|
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=klasa=tło obramowanie|4=id=przykład1}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=klasa=czcionka kolor tło obramowanie}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:ltr;|3=id=przykład}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;font-size:15px;color:darkslategray;background-color:ivory;border:darkblue 1px solid;}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;=color:darkslategray;background-color:ivory;border:darkblue 1px solid;|3=klasa=czcionka}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;color:darkslategray;|3=klasa=czcionka|4=id=przykład2}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=klasa=tło obramowanie|4=id=przykład1}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=klasa=czcionka kolor tło obramowanie}}
{{Przykład użycia szablonu w tabeli|tytuł=Bdo|przed=Tekst przed.|po=Tekst po.|Oto jest tekst do analizy|2=styl=direction:rtl;|3=id=przykład}}
}}
Widzimy w powyższej tabelce, że niezależnie jak napiszemy znacznik: {{Tag|bdo}}, to wynik otrzymujemy taki sam, a to rozplanowanie stylów zrobiliśmy poprzez rozdzielenie stylów pomiędzy atrybutami: {{Code|style}}, {{Code|class}} lub {{Code|id}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Tekst, któremu można nadać pewne cechy.",
"type": "string",
"required": true
},
"styl": {
"description": "Styl CSS, właściwości i ich wartości.",
"type": "string"
},
"klasa": {
"description": "Reguły CSS, do klasy, kaskadowych arkuszy stylów.",
"type": "string"
},
"id": {
"description": "Unikatowy identyfikator.",
"type": "string",
"suggested": true
},
"atrybuty": {
"description": "Atrybuty, inne niż: id, style i class.",
"type": "string"
}
},
"paramOrder": [
"1",
"id",
"styl",
"klasa",
"atrybuty"
],
"description": "Szablon nadającej tekstowi, w tekście, pewne cechy, za pomocą stylów, w elemencie: <span>...</span>."
}
</templatedata>
== Zobacz też ==
* {{s|Znacznik}} - szablon, o który ten szablon, jest zbudowany, w oparciu o element liniowy: {{Tag|span}}, o tekście umieszczanego, wewnątrz tego szablonu, pomiędzy tymi tagami.
{{Szablony ramek formułujące kod}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony do formatowania tekstu
| Szablony ramek tworzące kod HTML
| Szablony znaczników
}}
</includeonly>
ndzfxuyv3fzifjr7j36d93tozham9eq