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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); return tekst_artykulu2; else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2); return tekst_artykulu2; elseif(zawartosc)then return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod) 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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); return tekst_artykulu2; else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2); return tekst_artykulu2; elseif(zawartosc)then return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod) 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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); return tekst_artykulu2; else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2); return tekst_artykulu2; elseif(zawartosc)then return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod) 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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); return tekst_artykulu2; else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2); return tekst_artykulu2; elseif(zawartosc)then return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod) 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="(&#123;&#123;[&#;!%(%)]+&#125;&#125;)"; local numer_rozdzialu_w_ksiazce=1; local parametry_modul=require("Module:Parametry"); local html_modul=require("Module:Html"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne") local czy_jest_spis_tresci=nil; local poziom_spisu_tresci=nil; local dalej_nie_rozwazaj_spis_tresci=nil; local wliczaj_artykuly_tego_rozdzialu=nil; local function AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja) rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[rozdzial]))then poziom_spisu_tresci=poziom_rozdzialu; czy_jest_spis_tresci=true; elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then if(poziom_spisu_tresci<poziom_rozdzialu)then wliczaj_artykuly_tego_rozdzialu=true; else wliczaj_artykuly_tego_rozdzialu=nil; dalej_nie_rozwazaj_spis_tresci=true; end; end; repeat text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._3.."%4}}"); text,_=mw.ustring.gsub(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}","{{%1|%2".._2.."%3".._1.."%4".._3.."%5}}"); until((not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)%]%]([^{}]-)}}") ) and (not mw.ustring.match(text,"{{([%w_%s:]+)|([^{}]-)%[%[([^%[%]|{}]+)|([^%[%]|{}]+)%]%]([^{}]-)}}"))); text,_=mw.ustring.gsub(text,"{{[^{}]+}}",mikroszablony); if(not tabela_artykulow)then tabela_artykulow={};end; if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then tabela_artykulow[numer_rozdzialu_w_ksiazce]={}; tabela_artykulow[numer_rozdzialu_w_ksiazce][1]={rozdzial,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,},}; end; local function iteratorTekstuNaglowka() local re="([#:*;]*)[^%S\n]*([^{}%[%]\n]*)[^%S\n]*([^\n]+)"; local iter=nil; local tak=nil; local czy_rozdzial=nil; return function() if(not czy_rozdzial)then czy_rozdzial=true; if((poziom_rozdzialu or 0)>0)then return "","",rozdzial,true; end; end; if(not tak)then tak=true; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re); if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; if(not iter)then iter=mw.ustring.gmatch(text,"\n"..re); end; local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter(); return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false; end; end; ---- local function LiniaArtykolow(linia) repeat linia,_=mw.ustring.gsub(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])", function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); linia,_=mw.ustring.gsub(linia,"({{[^{}]*)(,)([^{}]*}})",function(a,b,c) return a.."&#"..mw.ustring.byte(b)..";"..c;end); until not mw.ustring.match(linia,"(%[%[[^%[%]]*)(,)([^%[%]]*%]%])") and not mw.ustring.match(linia,"({{[^{}]*)(,)([^{}]*}})"); if(mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})") or mw.ustring.match(linia,"^[%s%w]*({{[%s_]*[Kk]Książka[%s_]*|[^{}]*}})") )then linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})","%1,%2"); linia,_=mw.ustring.gsub(linia,"([%]}]+)%s*({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})","%1,%2"); else linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+krótka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]ompletność[%s_]+junior[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); linia,_=mw.ustring.gsub(linia,"({{[%s_]*[Kk]siążka[%s_]*|[^{}]*}})%s*([%[{]+)","%1,%2"); end; local tabela_linii_artykolow=mw.text.split(linia,"%s*,%s*",false); for i=1,#tabela_linii_artykolow,1 do tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",","); end; return tabela_linii_artykolow; end; local iterator=iteratorTekstuNaglowka(); local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial])); for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do local tab_linia=LiniaArtykolow(linia) for k=1,#tab_linia,1 do local iterator2=mw.ustring.gmatch(tab_linia[k],"([%[{][%[{][^{}]-[%]}][%]}])"); for wyzyskane_wywolanie_szablonu_spis_tresci in iterator2 do wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1"); wyzyskane_wywolanie_szablonu_spis_tresci2,_=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci2,wyrazenie_regularne,mikroszablony_odwrotne); wyzyskane_wywolanie_szablonu_spis_tresci2=parametry_modul["Odstępy"]{[1]=wyzyskane_wywolanie_szablonu_spis_tresci2,[2]="tak",}; if(mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci2,"^%[%[([^%[%]]+)%]%]$"))then wyzyskane_wywolanie_szablonu_spis_tresci=wyzyskane_wywolanie_szablonu_spis_tresci2; end; local pozycja_artykulu=nil;local nazwa=nil; local tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom; if(wliczaj_artykuly_tego_rozdzialu)then tab_pozycja_artykulu,tab_pozycja_artykulu_inne,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki); --Rozdzialy początek local znaki_niedozwolone; if((tab_pozycja_artykulu)and(tab_pozycja_artykulu[1]))then tab_pozycja_artykulu[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_artykulu[1],[2]="tak",} --pozycja_artykulu=mw.getContentLanguage():ucfirst(pozycja_artykulu); tab_pozycja_artykulu[1]=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](tab_pozycja_artykulu[1]); znaki_niedozwolone=mw.ustring.match(tab_pozycja_artykulu[1],"[|<>{}%[%]]"); if(znaki_niedozwolone)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci)then self.tabela_listy_danych_analizy_ksiazki.problemy.niedozwolone_znaki_w_spisach_tresci=0; end; end; tab_pozycja_artykulu[1]=html_modul["PoprawAdresNagłówkaStronyAdresu"](tab_pozycja_artykulu[1]); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][2])then tabela_artykulow[numer_rozdzialu_w_ksiazce][2]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local strona=stronicowyparser_modul.PrzekierowanieDoStrony(nazwa_ksiazki..((tab_pozycja_artykulu[1]~="") and ("/"..tab_pozycja_artykulu[1]) or "")); if(strona)then tab_pozycja_artykulu[1]=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona); end; local tab_stare={((tab_pozycja_artykulu[2]) and ({tab_pozycja_artykulu[1],tab_pozycja_artykulu[2],}) or tab_pozycja_artykulu[1]),{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][2],tab_stare); break; elseif((tab_pozycja_artykulu_inne)and(tab_pozycja_artykulu_inne[1]))then local wiki_modul=require("Module:Wiki"); if(not tabela_artykulow[numer_rozdzialu_w_ksiazce][3])then tabela_artykulow[numer_rozdzialu_w_ksiazce][3]={};end; local linia_artykokow=tab_linia[k]; linia_artykokow=mw.ustring.gsub(linia_artykokow,wyrazenie_regularne,mikroszablony_odwrotne); local tab_stare={((tab_pozycja_artykulu_inne[1])and((tab_pozycja_artykulu_inne[2])or(tab_pozycja_artykulu_inne[3])or(tab_pozycja_artykulu_inne[4])))and({tab_pozycja_artykulu_inne[1],tab_pozycja_artykulu_inne[2],tab_pozycja_artykulu_inne[3],tab_pozycja_artykulu_inne[4],}) or tab_pozycja_artykulu_inne[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,#(tabela_artykulow[numer_rozdzialu_w_ksiazce][2] or {}),}; table.insert(tabela_artykulow[numer_rozdzialu_w_ksiazce][3],tab_stare); end; else link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})"); end; if(((not tab_pozycja_artykulu)or(not tab_pozycja_artykulu[1]))and(link_szablon)and(czy_artykul_korzystany)and(licencja_z_autorem))then local wywolanie_spisu_tresci=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^{{[Ll]icencja|([^{}]-)}}$"); if(wywolanie_spisu_tresci)then wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.gsub(wyzyskane_wywolanie_szablonu_spis_tresci,"(%[%[[^|%[%]]-)(|)([^|%[%]]-%]%])","%1&#"..tostring(mw.ustring.byte('|'))..";%3"); local tabela_parametrow=techniczne_modul["ParsujWywołanieSzablonu"](wyzyskane_wywolanie_szablonu_spis_tresci); if(tabela_parametrow)then local autor=tabela_parametrow["Autor"]; local szkoly=tabela_parametrow["Ukończone szkoły"]; local email=tabela_parametrow["Email"]; local dotyczy=tabela_parametrow["Dotyczy"]; local licencjonowanie=tabela_parametrow["Licencjonowanie"]; local umowa_prawna=tabela_parametrow["Umowa prawna"]; local konsekwencje=tabela_parametrow["Konsekwencje"]; if(autor~=nil)then autor,_=mw.ustring.gsub(autor,wyrazenie_regularne,mikroszablony_odwrotne); end; if(szkoly~=nil)then szkoly,_=mw.ustring.gsub(szkoly,wyrazenie_regularne,mikroszablony_odwrotne); end; if(email~=nil)then email,_=mw.ustring.gsub(email,wyrazenie_regularne,mikroszablony_odwrotne); end; if(dotyczy~=nil)then dotyczy,_=mw.ustring.gsub(dotyczy,wyrazenie_regularne,mikroszablony_odwrotne); end; if(licencjonowanie~=nil)then licencjonowanie,_=mw.ustring.gsub(licencjonowanie,wyrazenie_regularne,mikroszablony_odwrotne); end; if(umowa_prawna~=nil)then umowa_prawna,_=mw.ustring.gsub(umowa_prawna,wyrazenie_regularne,mikroszablony_odwrotne); end; if(konsekwencje~=nil)then konsekwencje,_=mw.ustring.gsub(konsekwencje,wyrazenie_regularne,mikroszablony_odwrotne); end; if(autor~=nil)then tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje}; licencja_z_autorem=false; end; break; elseif(self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end end; end; end; end; end; numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1; end local parsuj_rozdzialami=nil; for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja in iterator do AnalizaRozdzialu(rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja); if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end end; if(not parsuj_rozdzialami)then AnalizaRozdzialu("Spis treści",tekst_rozwiniety_calego_artykulu,1,nil,nil); end; if(czy_artykul_korzystany)then tabelalisty2={tabela_artykulow, tabela_licencji_spisu_tresci,};else tabelalisty2=tabela_artykulow;end; return tabelalisty2; end; function p.ObslugaSzczegolnaElementu(self,kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany) local lista_dwuelementowa={}; lista_dwuelementowa[1]=kod_uchwytu; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu])))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_obiektu=true; end; table.insert(tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu],lista_dwuelementowa); end; function p.ObsluzSzablonWzor(self,tabela_parametrow_szablonu,tabela_listy_danych_analizy_ksiazki2,nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu,nazwa_obiektu, czy_artykul_korzystany,numer_numeracji) local kod_uchwytu=nil; if(tabela_parametrow_szablonu["uchwyt"])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu["uchwyt"]); elseif(tabela_parametrow_szablonu[numer_numeracji])then local parametry_modul=require("Module:Parametry"); kod_uchwytu=parametry_modul["Odstępy"](tabela_parametrow_szablonu[numer_numeracji]); end; if(kod_uchwytu and not mw.ustring.match(kod_uchwytu,"^%s*$"))then p:ObslugaSzczegolnaElementu(kod_uchwytu,tabela_listy_danych_analizy_ksiazki2, nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, nazwa_obiektu, czy_artykul_korzystany); end; end; function p.Czy_jest_taki_element_w_tabeli_wynikow(self,element, nazwa_przestrzeni, nazwa_ksiazki) local parametry_modul=require("Module:Parametry"); local tabela_problemow=self.tabela_listy_danych_analizy_ksiazki.problemy[element]; return (parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow,nazwa_przestrzeni) and parametry_modul.CzyJestTakiKluczTabeli(tabela_problemow[nazwa_przestrzeni],nazwa_ksiazki)); end; function p.SprawdzCzyJestDostepnySpisTresci(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu) if(nazwa_przestrzeni)then if(nazwa_ksiazki)then if(nazwa_artykulu=="")then return;end; local czy_element_wystepuje_w_tablicy=false; local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu; if(tablica_przestrzeni)then local tabela_ksiazek=tablica_przestrzeni[nazwa_przestrzeni]; if(tabela_ksiazek)then local tab_ksiazki=tabela_ksiazek[nazwa_ksiazki]; if(tab_ksiazki)then if(tab_ksiazki.spis)then czy_lista_niepusta=true; for _,tab_value1 in ipairs(tab_ksiazki.spis)do if(tab_value1[2])then for _,nazwa_artykulu1 in ipairs(tab_value1[2])do if(nazwa_artykulu1[1]==nazwa_artykulu)then czy_element_wystepuje_w_tablicy=true; break; end; end; end; if(czy_element_wystepuje_w_tablicy)then break;end; end; end; end; end; end; if(not czy_element_wystepuje_w_tablicy)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni~=nazwa_przestrzeni)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki~=nazwa_ksiazki)or(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu~=nazwa_artykulu))then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:DodawanieElementowDoTablicy("brak_spisy_tresci_do_doloczanych_stron",nil,nazwa_przestrzeni,nazwa_ksiazki); end; elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron)then if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then self.tabela_listy_danych_analizy_ksiazki.problemy.brak_spisu_tresci_do_korzystanych_stron=0; end; end; end; end; end; end; function p.PusteParametryLinkow(self,nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu) local czy_ksiazka_z_tylko_odstepami_lub_pusty=(nazwa_ksiazki)and mw.ustring.match(nazwa_ksiazki,"^%s*$") or nil; local czy_artykul_z_tylko_odstepami_lub_pusty=(nazwa_artykulu)and mw.ustring.match(nazwa_artykulu,"^%s*$") or nil; local czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty=(uchwyt_obiektu)and mw.ustring.match(uchwyt_obiektu,"^%s*$") or nil; if(czy_uchwyt_obiektu_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][1]=0; end; end; if(czy_artykul_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][2]=0; end; end; if(czy_ksiazka_z_tylko_odstepami_lub_pusty)then if(not self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3])then self.tabela_listy_danych_analizy_ksiazki.problemy.puste_parametry_szablonow_stronicowych_linkujacych[nazwa_obiektu][3]=0; end; end; end; function p.ZbieranieInformacjiArtykolowKsiazek(self,tabela_parametrow_szablonu) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[2]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=nazwa_artykulu or (pelna_nazwa_ksiazki and (((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki))and ksiazkowe_modul["NazwaArtykułuKsiążki"]() or "") or ksiazkowe_modul["NazwaArtykułuKsiążki"]()); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.ZbieranieInformacjiPudelek(self,tabela_parametrow_szablonu) if((not tabela_parametrow_szablonu["nazwa przestrzeni nazw"])and(not tabela_parametrow_szablonu["nazwa jednostki"]))then return;end; local nazwy_modul=require("Module:Nazwy"); local nazwa_jednostki=(tabela_parametrow_szablonu["nazwa jednostki"] and mw.ustring.gsub(tabela_parametrow_szablonu["nazwa jednostki"],"^([^#]*)#(.*)$","%1") or nil ) or nazwy_modul["NAZWASTRONY"](); local nazwa_przestrzeni=nazwy_modul.Np{nazwa=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwy_modul["NAZWAPRZESTRZENI"]()}; local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki; local ksiazkowe_modul=require("Module:Książkowe"); local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); local nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](pelna_nazwa_ksiazki); local nazwa_artykulu=ksiazkowe_modul["NazwaArtykułuKsiążki"](pelna_nazwa_ksiazki); local tabela_listy_danych_analizy_ksiazki=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false); end; function p.LinkowanieOgolnie(self,tabela_listy_danych_analizy_ksiazki2,tabela_parametrow_szablonu,nazwa_obiektu, linkobiekt) local nazwa_artykulu=tabela_parametrow_szablonu["nazwa artykułu"] or tabela_parametrow_szablonu[2]; local uchwyt_obiektu=tabela_parametrow_szablonu["uchwyt"] or tabela_parametrow_szablonu[1]; local pelna_nazwa_ksiazki=tabela_parametrow_szablonu["nazwa książki"] or tabela_parametrow_szablonu[3]; local parametry_modul=require("Module:Parametry"); nazwa_artykulu=(nazwa_artykulu)and parametry_modul["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",} or nil; pelna_nazwa_ksiazki=(pelna_nazwa_ksiazki)and parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",} or nil; uchwyt_obiektu=(uchwyt_obiektu)and parametry_modul["Odstępy"](uchwyt_obiektu) or nil; local nazwy_modul=require("Module:Nazwy"); local html_modul=require("Module:Html"); if(nazwa_artykulu)then nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu); nazwa_artykulu=require("Module:Parametry")["Odstępy"]{[1]=nazwa_artykulu,[2]="tak",}; end; local nazwa_ksiazki;local nazwa_przestrzeni; if(pelna_nazwa_ksiazki)then pelna_nazwa_ksiazki=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](pelna_nazwa_ksiazki); local ksiazkowe_modul=require("Module:Książkowe"); pelna_nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](pelna_nazwa_ksiazki); pelna_nazwa_ksiazki=parametry_modul["Odstępy"]{[1]=pelna_nazwa_ksiazki,[2]="tak",}; nazwa_ksiazki=nazwy_modul["NAZWASTRONY"](pelna_nazwa_ksiazki); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](pelna_nazwa_ksiazki); end; if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then if(nazwa_artykulu)then if(nazwa_artykulu~="")then if(not nazwa_ksiazki)then nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; elseif(nazwa_ksiazki=="")then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; end; elseif((nazwa_ksiazki)and(nazwa_ksiazki~=""))then nazwa_artykulu=""; elseif((nazwa_ksiazki)and(nazwa_ksiazki==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); return; else nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; end; if((nazwa_przestrzeni~=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_ksiazki~=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki)or(nazwa_artykulu~=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu))then p:LinkowanieNastepne(nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt); p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else p:LinkowanieDalszePrace(tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt) p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; elseif((uchwyt_obiektu)and(uchwyt_obiektu==""))then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); elseif(not self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu])then p:PusteParametryLinkow(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); self.tabela_listy_danych_analizy_ksiazki.problemy.brak_uchwytu[nazwa_obiektu]=0; end; end; function p.LinkowanieDalszePrace(self,tabela_listy_danych_analizy_ksiazki2,nazwa_obiektu,uchwyt_obiektu,linkobiekt,Funkcja_sprawdzania_parametrow_linkow) local linkobiekttab=linkobiekt[nazwa_obiektu]; local parametry_modul=require("Module:Parametry"); if((not tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku)and(not parametry_modul["CzySąElementyNumerowaneTablicy"](linkobiekttab)))then local parametry_modul=require("Module:Parametry"); local nazwa_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni; local nazwa_ksiazki=self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki; local nazwa_artykulu=self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu; if(not (p:Czy_jest_taki_element_w_tabeli_wynikow("strony_poza_zakresem_obslugiwanym",nazwa_przestrzeni, nazwa_ksiazki)))then p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu); end; tabela_listy_danych_analizy_ksiazki2.sprawdzenie_dokonane_linku=true; end; table.insert(linkobiekttab,uchwyt_obiektu); end; function p.LinkowanieNastepne(self, nazwa_obiektu, nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu) if(((nazwa_przestrzeni)and(((nazwa_przestrzeni~="")and(not mw.ustring.match(nazwa_przestrzeni,"[|<>{}%[%]]")))or(nazwa_przestrzeni==""))) and((nazwa_artykulu)and(((nazwa_artykulu~="")and(not mw.ustring.match(nazwa_artykulu,"[|<>{}%[%]]")))or(nazwa_artykulu==""))) and((nazwa_ksiazki)and(nazwa_ksiazki~="")and(not mw.ustring.match(nazwa_ksiazki,"[|<>{}%[%]]"))))then local parametry_modul=require("Module:Parametry"); if((nazwa_przestrzeni)and(parametry_modul.CzyTak(nazwa_ksiazki))and(nazwa_artykulu))then local tabela_listy_danych_analizy_ksiazki2={} local tabela_listy_danych_analizy_ksiazki0=p:ZbieranieInformacji(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, false,tabela_listy_danych_analizy_ksiazki2); if(tabela_listy_danych_analizy_ksiazki0)then if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki0,})then return;end; p:SprawdzCzyJestDostepnySpisTresci(nazwa_przestrzeni,nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu); local czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2=tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu]; local ile_razy=0; if(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2)then for _, parametry_obiektu in pairs(czy_jest_nazwa_obiektu_w_tabela_listy_danych_analizy_ksiazki2) do if(parametry_obiektu[1]==uchwyt_obiektu)then ile_razy=ile_razy+1; if(ile_razy>1)then break;end; end; end; end if(ile_razy~=1)then if(self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]==nil)then self.tabela_listy_danych_analizy_ksiazki.problemy.bledy_uchwytow_korzystanych_stron["Link"..nazwa_obiektu]=0; end; p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(not self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera)then self.tabela_listy_danych_analizy_ksiazki.problemy.blad_wewnetrzny_modulu_lua_stronicowego_parsera=0; end; end; else p:PusteParametryLinkow(nazwa_przestrzeni, nazwa_ksiazki,nazwa_artykulu, uchwyt_obiektu, nazwa_obiektu); end; else if(self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron==nil)then if((self.tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)and(self.tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_korzystanych_stron=0; else self.tabela_listy_danych_analizy_ksiazki.problemy.nieprawidlowe_nazwy_stron_doloczanych_do_stron=0; end; end; end; end; function p.SpreparowanyWikikodStrony(self,nazwa_modolu,dokumentacja) local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modolu); if(nazwy_np_modul.Module==nazwa_przestrzeni)then local techniczne_modul=require("Module:Techniczne"); local nazwa_modolu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modolu); if(nazwa_modolu_opisu~=nazwa_modolu)then return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nazwa_modolu,false,nil,dokumentacja); else return p.LadujZawartoscStrony(self,nazwa_modolu_opisu,nil,true,nil,dokumentacja); end; elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,nil,dokumentacja); elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then if(mw.ustring.match(nazwa_modolu,"^[^:]+:(.*/opis)%s*$"))then local szablony_magiczne={}; return p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,dokumentacja); else local szablony_magiczne={}; local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modolu,nil,true,szablony_magiczne,false); if(not tekst_artykulu_caly)then return;end; local parametry_modul=require("Module:Parametry"); local techniczne_modul=require("Module:Techniczne"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local function AnalizujDokumentacja(tablica_parametrow_dokumentacja,szablon) local nazwa_strony2; local dokumentacja_szablonu=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*}}"); if(dokumentacja_szablonu)then local nazwa_strony2=nazwa_modolu.."/opis"; local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true); return tekst_artykulu2; else local dopasowanie=mw.ustring.match(szablon,"{{%s*[Dd]okumentacja%s*|"); if(dopasowanie)then local nazwa_strony2=tablica_parametrow_dokumentacja[1]; local zawartosc=tablica_parametrow_dokumentacja["zawartość"]; if((nazwa_strony2)and(not zawartosc))then local tekst_artykulu2=p.LadujZawartoscStrony(self,nazwa_strony2,nil,false,szablony_magiczne,true,nazwa_modolu); tekst_artykulu2=techniczne_modul["TekstBezOdwołańDoParametrówWeWzorze"](tekst_artykulu2); return tekst_artykulu2; elseif(zawartosc)then return stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(zawartosc,nazwa_modolu); end; end; end; end; local techniczne_modul=require("Module:Techniczne"); tekst_artykulu_caly=stronicowyparser_potrzebne_modul:SkladajSzablonoweWywolanie(tekst_artykulu_caly,nazwa_modolu,nil,function(szablon,kod) 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}}&nbsp;(szablon zamykający){{•}} {{Nowrap|{{s|Blok ramkowy}} (szablon otwierający)}}{{•}} {{s|Blok ramkowy/Zamknij}}&nbsp;(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