Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.47.0-wmf.15 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Szablon:Dokumentacja/opis 10 19882 552010 524747 2026-08-16T16:45:26Z Persino 2851 /* Zobacz też */ 552010 wikitext text/x-wiki {{Podstrona dokumentacji}}__NOTOC__ <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> {{wysokie ryzyko}} {{wysokie ryzyko|skomplikowany}} To jest szablon <nowiki>{{</nowiki>'''Dokumentacja'''<nowiki>}}</nowiki>. Dla większości instrukcji określających kiedy i jak stosować ten szablon, zobacz [[w:Pomoc:Schemat opisu szablonu|Pomoc:Schemat opisu szablonu]]. Ten szablon wyświetla zieloną ramkę, którą teraz widzisz, i automatycznie przedstawia w niej zawartość podstrony <code>/opis</code> szablonu. Przeznaczony jest do dokumentowania szablonów oraz pozostałych stron, które są [[w:Pomoc:Transkluzja|transkludowane]] na innych stronach. Może być używany w przestrzeni nazw szablonów oraz większości innych [[Wikibooks:Przestrzenie nazw|przestrzeni nazw]]. Użycie tego szablonu umożliwia ponadto zabezpieczenie szablonu, podczas gdy zawartość dokumentacji i kategorii nadal jest możliwa dla każdego. == Użycie == Normalnie ten szablon jest używany bez żadnych parametrów, przez umieszczenie na dole strony szablonu w kontenerze {{tag|noinclude|o}}: <syntaxhighlight lang="mediawiki"> <!--Ostatnia linijka kodu Twojego szablonu--><noinclude> {{Dokumentacja}} </noinclude> </syntaxhighlight> Wówczas ten szablon automatycznie ładuje zawartość podstrony /opis szablonu, dla którego jest używany. Jednak szablon może załadować dokumentację z każdej innej dowolnej strony, na przykład: <syntaxhighlight lang="mediawiki"> <!--Ostatnia linijka kodu Twojego szablonu--><noinclude> {{Dokumentacja|Szablon:Inna strona/opis}} </noinclude> </syntaxhighlight> Zwróć uwagę, że przy ładowaniu dokumentacji strony innej niż lokalna podstrona /opis, trudnym staje się zarządzanie kategoriami szablonu. Zawartość dokumentacji może być także podana bezpośrednio jako tekst, na przykład: <syntaxhighlight lang="mediawiki"> <!--Ostatnia linijka kodu Twojego szablonu--><noinclude> {{Dokumentacja | zawartość = (jakiś opis) }}</noinclude> </syntaxhighlight> Kiedy użyty jest parametr {{parametr|zawartość}}, okno dokumentacji normalnie nie pokazuje linków [edytuj] i [odśwież] w nagłówku. Zwróć uwagę, że nawet jeśli załączono opis szablonu z trzeciej strony, a podstrona /opis istnieje, w ramce pod dokumentacją link do niej w dalszym ciągu będzie się pokazywał. Parametry {{parametr|1}} i {{parametr|zawartość}} mogą być także łączone, na przykład: <syntaxhighlight lang="mediawiki"> <!--Ostatnia linijka kodu Twojego szablonu--><noinclude> {{Dokumentacja|1=Szablon:Inna strona/opis | zawartość = {{Szablon:Inna strona/opis|parametry}} }}</noinclude> </syntaxhighlight> Wówczas strona podana w parametrze 1 jest wykorzywana w linkach [edytuj] i [odśwież] i w linku do transkludowanej strony w ramce pod dokumentacją, a parametr '''zawartość''' jest używany do zawartości okna dokumentacji. Powyższy kod oznacza, że treść jest transkludowana jako <kbd><nowiki>{{Inna strona/opis|parametry}}</nowiki></kbd>. W tym przykładzie parametry są także dołączane do podstrony /opis. == Najlepsza praktyka == Kod powinien być dodany na dole kodu szablonu, bez odstępu przed tagiem {{tag|noinclude|o}}, (który mógłby powodować dodatkowy odstęp na stronach, gdzie szablon jest wykorzystywany). Kategorie, które odnoszą się do samego szablonu, powinny być dodawane na dole podstrony /opis, wewnątrz tagów {{tag|includeonly|o}}. Interwiki szablonu powinny być umieszczane w [[:wikidata:|Wikidanych]]. Jeśli strona dokumentacji zawiera tagi {{tag|includeonly|o}} lub {{tag|noinclude|o}} jako część widocznego tekstu dokumentcji, zamień „<code>&lt;</code>” na „<code>&amp;lt;</code>”. == Nagłówek == W przestrzeni nazw szablonów, szablon pokazuje następujący nagłówek: : [[Plik:Template-info.png|32px]] '''Dokumentacja szablonu''' W większości przestrzeni nazw, takich jak np. „Wikibooks:”, pokazuje następujący nagłówek: : '''Dokumentacja''' Parametr '''nagłówek''' może być użyty do zmiany treści nagłówka na dowolny tekst, np.: : <code><nowiki>{{Dokumentacja|nagłówek=Dokumentacja infoboksu}}</nowiki></code> Jeśli parametr '''nagłówek''' jest pusty, ale zdefiniowany, nad dokumentacją nie wyświetla się nagłówek, ani linki, na przykład" : <code><nowiki>{{Dokumentacja|nagłówek=}}</nowiki></code> Parametr '''styl nagłówka''' może być dodatkowo wypełniony wartościami [[Kaskadowe arkusze stylów|CSS]] do zmiany jego wyglądu (bez cudzysłowów <code>" "</code>, ale ze średnikami <code>;</code>); na przykład: : <code>heading-style=font-size:150%;color:red;</code> == Ramka z linkami == Pod dużym oknem zawierającym dokumentację znajduje się mniejsze, zawierające linki i metainformacje na temat tej dokumentacji. Zawartość tego okienka zależy od użytych parametrów oraz od przestrzeni nazw. W pewnymch przypadkach nie pokazuje się ono wcale. Aby ukryć ręcznie to okno, należy podać parametr {{parametr|okno linków|nie}}.<!-- You can also insert customised text in the link box, by defining the {{para|link box}} parameter. For example: {{para|link box|This documentation is automatically generated by [<nowiki />[Template:Country showdata]]}}--> == Funkcje automatyczne == Jeśli podstrona dokumentacji nie istnieje, link [stwórz] zawiera parametr [[mw:Manual:Creating pages with preloaded text|preload]], dzięki czemu pole edycji zostanie wypełnione podstawowym kodem dokumentacji. == Szczegóły techniczne == Stroną z preloadem dla przycisku [stwórz] jest [[Szablon:Dokumentacja/preload]]. === Pełna składnia === <pre> {{Dokumentacja}} {{Dokumentacja | zawartość = }} {{Dokumentacja | [ścieżka strony dokumentacji] | styl nagłówka = | nagłówek = | okno linków = }} </pre> == Zobacz też == {{Dokumentacja/opis/zobacz też}} {{Link FA/opis/Zobacz też}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Narzędzia dokumentacji szablonów | Szablony dokumentacji }} </includeonly> ktzqgt0d4k5fwzdj0kl6r75eaojy7jq Szablon:Opis kategorii/opis 10 24592 552008 545076 2026-08-16T16:43:17Z Persino 2851 /* Zobacz też */ 552008 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Opis szablonu == Szablon używany w przestrzeni nazw {{Np|Category|link=tak}} do jego opisu, jakie strony mają tam się znaleźć, jako pozycje. ; Szablon składa się z szablonów{{Dk}} * {{s|Opis kategorii/start}} - szablon, który uruchamia: {{s|Opis kategorii/silnik}}, w dwóch formach jego wizualizacji, a pierwsza forma wizualizacji jest z szablonem powiadomień {{s|Siostrzane projekty}}. Jeżeli szablon wyświetla jakieś okienka powiadomień, oprócz głównego, to on wybiera tą pierwsza odmianę wyświetlania, a jeżeli te one tam nie wyświetlają się tam, to drugą. * {{s|Opis kategorii/silnik}} - szablon wyświetlający główna treść szablonu. == Użycie == ===Parametry podstawowe=== {{Tabelka|styl=background:transparent|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Szablon}}<!-- -->{{Komórka|nagłówek=tak|Opis parametrów}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|styl=vertical-align:top; width: content;|<!-- -->{{Pre|<!-- -->{{s|{{ROOTPAGENAME}} | grupuje {{=}} | uwagi {{=}} | liczba stron {{=}} | osobne grupują {{=}} | główne strony {{=}} | portal {{=}} | wikiprojekt {{=}} | zobacz {{=}} | szablony {{=}} | zgłaszające {{=}} | linkujące {{=}} | związane {{=}} | zobacz opisy {{=}} | dokumentacje {{=}} | opis stron {{=}} | przykłady {{=}} | dalsze pozycje {{=}} | zmiany {{=}} | siostrzane {{=}} }}}}}}<!-- -->{{Komórka|styl=vertical-align:top;|<!-- -->{{pre|styl=overflow:auto;|&nbsp; – ogólny opis – dodatkowe uwagi o strukturze, przeznaczeniu czy sposobie korzystania – liczba stron w kategorii, w której siedzi ten szablon – opis odsyłający do kategorii zbliżonych tematycznie, ale nie pokrywających się – strona główna kategorii – nazwa portalu tematycznego – nazwa wikiprojektu tematycznego opiekującego się kategorią – inne strony i miejsca związane tematycznie lub funkcjonalnie z kategorią – szablony, do których odesłanie może być w tym kontekście przydatne – szablony zgłaszające stronę do kategorii, do której wstawiono ten szablon - linkujące do podanej strony – inne kategorie, do których odesłanie może być w tym kontekście przydatne – inne dokumentacje związane tematycznie lub funkcjonalnie z kategorią – dokumentacja szablonów i modułów – opis stron wchodzących w skład danej aktualnej kategorii jako pozycje – przykłady omawianych szablonów i modułów w kategorii – dalsze pozycje dokumentacji kategorii – zmiany w linkujących stron należących do kategorii – szablony siostrzanych projektów }}<!-- -->}}<!-- -->}}<!-- -->}} {{#ifeq:{{ROOTPAGENAME}}|Opis kategorii| ===Parametry dodatkowe=== {{Tabelka|styl=background:transparent|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Szablon}}<!-- -->{{Komórka|nagłówek=tak|Opis parametrów}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|styl==vertical-align:top; width: content;|<!-- -->{{pre|{{s|Opis kategorii| ... | bez ramki {{=}} | bez nagłówka {{=}} | ze stopką {{=}} | bez kolumn {{=}} | liczba kolumn {{=}} | minimalna szerokość kolumn {{=}} | minimalna główna szerokość {{=}} | bez czcionki {{=}} | nazwa kategorii {{=}} ... }}}}}}<!-- -->{{Komórka|styl=vertical-align:top;|<!-- -->{{Pre|styl=overflow:auto;|&nbsp; - szablon nie wyświetla ramki, a w nim opisu kategorii, tylko opis kategorii i ewentualnie nad nim nagłówek - szablon wyświetla nagłówek za pomocą szablonu {{s|Nagłówek}}, jeśli wartość niepusta, (domyślnie jako wyłączone) - szablon w przypadku wyświetlania nagłówka uruchamia również stopkę, jeśli wartość niepusta, (domyślnie jako wyłączone) - szablon bez podziału strony na kolumny, jeśli wartość niepusta, (domyślnie jako wyłączone) - liczba kolumn przełamanego tekstu (domyślnie: 1) - minimalna szerokość kolumny (domyślnie: 522px, gdy jest podany parametr: siostrzane, a gdy nie, to: 822px) - minimalna szerokość całej ramki z zawartością (domyślnie: 822px) - bez użycia czcionki tekstu, jeśli wartość niepusta, (domyślnie jako wyłączone) - nazwa kategorii, na której ma być wsadzony ten szablon, (domyślnie jako wyłączone) }}<!-- -->}}<!-- -->}}<!-- -->}} }} == Przykład == {{Pre|{{s|{{ROOTPAGENAME}} | grupuje {{=}} Kategoria grupuje artykuły z dziedziny medycyny | uwagi {{=}} W kategorii znajdują się artykuły wspólne dla kilku dziedzin medycyny, zagadnienia bardziej szczegółowe znajdują się w podkategoriach. | liczba stron {{=}} | osobne grupują {{=}} {{l|Kategoria:Lekarze|biografie lekarzy}} | główne strony {{=}} {{l|Medycyna}} | portal {{=}} Nauki medyczne | wikiprojekt {{=}} Nauki medyczne | zobacz {{=}} | szablony {{=}} | zgłaszające {{=}} | linkujące {{=}} | związane {{=}} {{l|Kategoria:Weterynaria|Weterynaria}} | zobacz opisy {{=}} | dokumentacje {{=}} | opis stron {{=}} | przykłady {{=}} | dalsze pozycje {{=}} | zmiany {{=}} | siostrzane {{=}} {{s|Commonscat|Medical_facilities}} }}}} {{OpakujKategorieZeSortowaniem|{{ {{ROOTPAGENAME}} | grupuje = Kategoria grupuje artykuły z dziedziny medycyny | uwagi = W kategorii znajdują się artykuły wspólne dla kilku dziedzin medycyny, zagadnienia bardziej szczegółowe znajdują się w podkategoriach. | liczba stron = | osobne grupują = [[:Kategoria:Lekarze|biografie lekarzy]] | główne strony = [[Medycyna]] | portal = Nauki medyczne | wikiprojekt = Nauki medyczne | zobacz = | szablony = | zgłaszające = | linkujące = | związane = [[:Kategoria:Weterynaria|Weterynaria]] | zobacz opisy = | dokumentacje = | opis stron = | przykłady = | dalsze pozycje = | zmiany = | siostrzane = {{Commonscat|Medical_facilities}} | kod projektu bazy = w | nazwa przestrzeni nazw = Kategoria | nazwa jednostki = Medycyna }}}} == Zobacz też == {{Opis kategorii/opis/Zobacz też}} {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategoria|Szablony umieszczane na stronach kategorii}} </includeonly> mxv9zgnw0sx0h8v61npd51ppef1v1z0 Szablon:Status/opis 10 27688 552005 530171 2026-08-16T16:37:50Z Persino 2851 /* Zobacz też */ 552005 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka|Kategorie}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Ten szablon umieszcza książkę w podkategorii kategorii {{lk|Podręczniki według statusu}} dla użytkowników chcących przeglądać książki {{lr|Etapy rozwoju książek|według jego rozwoju}}, przy braku znaku pierwszego jego parametru, a przy znaku {{Code|-}} i {{Code|+}}, dodaje również stronę do innych kategorii. Szablon, gdy znak pierwszego jego parametru jest ujemny: {{Code|-}}, on to on umieszcza stronę w podkategoriach kategorii: {{lk|Podręczniki według portalu}}, {{lk|Podręczniki według poziomu}} i {{lk|Podręczniki według tematu}}, gdy znak jest dodatni {{Code|+}}, to szablon również umieszcza stronę nie tylko w normalnych kategoriach wcześniej podanych, ale w ich odpowiednikach kategorii {{lk|Polecane książki|polecanych książek}}. Szablon przyjmuje parametr {{Parametr|poziom|Studia}}, to wtedy, szablon umieszcza artykuł w odpowiednich stronach, gdy: {{Parametr|typ|z fizyki}} lub {{Parametr|typ|z matematyki}}, on dodatkowo dodaje zbiór kolejno do kategorii: {{lk|Akademickie książki z fizyki}} lub {{lk|Akademickie książki z matematyki}}. Również przy tym {{Parametr|typ}} szablon wstawia kolejno jednostkę do kategorii, np.: {{lk|Kompletne książki z fizyki}} i {{lk|Kompletne książki z matematyki}}. Gdy z jednych z parametrów nienazwanych szablonów, oprócz pierwszego, jest, np.: {{Parametr|język|indoeuropejskie}}, to szablon stronę nie tylko dodaje do kategorii {{lk|Języki}}, pod warunkiem, jeżeli, któreś z parametrów numerowanych, oprócz pierwszego jest {{lk|Języki}}, ale również do kategorii {{lk|Języki indoeuropejskie}}, na podstawie tego. Gdy mamy parametr, np.: {{Parametr|rodzaj|Edukacja}}, to szablon dodaje tą stronę do stron w podkategorii kategorii {{lk|Inne kategorie książek}}, czyli tutaj {{lk|Edukacja}}. Gdy parametr {{Code|junior}} jest niepusty, czyli: {{Parametr|junior|Owoce}}, wtedy szablon dodaje stronę do kategorii w przestrzeni nazw {{lk2|Wikijunior}}, tutaj w kategorii {{lk|Wikijunior:Owoce}}. Szablon dodaje do jednych z podkategorii kategorii {{lk|Spis alfabetyczny}}, przy znaku {{Code|-}}, a przy znaku {{Code|+}}, dodaje również do podkategorii kategorii {{lk|Polecane książki/Spis alfabetyczny}}. Parametry {{Parametr|rodzaj}} i {{Parametr|poziom}}, przyjmowano wcześniej, że to tam jest nazwa kategorii, a jeżeli te parametr będą zawierały kolejno zmienną oddzielone kategorie średnikami, to algorytm szablonu {{s|Status}} analizuje dla każdej z tych kategorii na podstawie tych podanych zmiennych. Szablon dla jakiegoś znaku dodaje stronę do kategorii {{lk|Wszystkie książki}}. Gdy strona należy do kategorii {{Parametr|rodzaj|{{lk|Wikizeszyty}}}}, to ten szablon umieszczamy również w podstronach podręcznika wikizeszytu, wtedy w tych artykułach (przy użyciu dodatkowego parametru), będące podstronami podręcznika, szablon dodaje stronę do kategorii, jak dla strony głównej podręcznika, oprócz kategorii: {{lk|Wszystkie książki}}, podręczników według czegoś i spisów alfabetycznych oraz ich odpowiedników polecanych kategorii, jeżeli użyjemy parametry {{Parametr|artykuł|tak}}, a jeżeli go nie użyjemy, to dla strony głównej podręcznika. Gdy użyjemy zmiennej {{Parametr|archiwalna|tak}} na stronie, to szablon umieszcza ją w kategorii {{lk|Archiwalne}}. Gdy szablon umieścimy w przestrzeni nazw {{Np|User|link=tak}} lub {{lr2|Brudnopis}}, w tam podręcznikach i artykułach - jednostkach, przy użyciu tego szablonu, to on umieszcza stronę w kategorii kolejno w: {{lk|Wszystkie książki użytkowników}} lub {{lk|Wszystkie książki w brudnopisie projektu}}. Gdy jeden z numerowanych zmiennych kategorii ma przedrostek {{Code|Książka:}} w wywołaniu, wtedy książka jest przydzielana do jednych z kategorii niepolecanych, która należy do kategorii {{lk|Kategorie książek}}, np.: {{Parametr|2|{{lk|Książka:Książka kucharska}}}} (wtedy szablon przydziela stronę do kategorii {{lk|Książka:Książka kucharska}}), wtedy nazwa sortowania jest równa spacji, a gdy dodatkowo dodamy parametr {{Parametr|książka}}, wtedy nazwa sortowania jest nierówna spacji i jest niepusta. Gdy kategoria książkowa nie jest podana, gdy podamy {{Parametr|książka|tak}}, to nazwa sortowania nie jest pusta i nie jest równa spacji, dla kategorii książkowej, a gdy go nie podamy, to nazwa sortowania jest równa spacji, to szablon generuje kategorię książkową, z tą nazwą sortowania, dla tego podręcznika, jeśli istnieje, tzn.: jeśli nazwa książki jest "{{lg|Książka kucharska}}", to ten podręcznik jest przydzielany do kategorii "{{lk|Książka:Książka kucharska}}". == Opis parametrów == {{OverflowWiersz|<!-- -->{{Tabelka|klasa=wikitable|styl=white-space:nowrap;margin-top:0.5em;margin-bottom:0.5em|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Użycie}}<!-- -->{{Komórka|nagłówek=tak|Szablon dodaje książkę do:}}<!-- -->{{Komórka|nagłówek=tak|Odpowiedniki w {{lk2|Polecane książki}}:}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|100%}}{{•}} {{s|status|-100%|...}}{{•}} {{s|status|+100%|...}}}}<!-- -->{{Komórka|{{lk|Kompletne książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Kompletne książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|75%}}{{•}} {{s|status|-75%|...}}{{•}} {{s|status|+75%|...}}}}<!-- -->{{Komórka|{{lk|Książki na ukończeniu}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki na ukończeniu}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|50%}}{{•}} {{s|status|-50%|...}}{{•}} {{s|status|+50%|...}}}}<!-- -->{{Komórka|{{lk|Książki wymagające dopracowania}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki wymagające dopracowania}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|25%}}{{•}} {{s|status|-25%|...}}{{•}} {{s|status|+25%|...}}}}<!-- -->{{Komórka|{{lk|Rozpoczęte książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Rozpoczęte książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|0%}}{{•}} {{s|status|-0%|...}}{{•}} {{s|status|+0%|...}}}}<!-- -->{{Komórka|{{lk|Zalążki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Zalążki}}}}<!-- -->}}<!-- -->}}<!-- -->}} == Parametry == ; Parametry szablonu w wywołaniu podstawowym przy pierwszym parametrze bez znaku * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. ; Parametry szablonu w wywołaniu rozszerzonym w przypadku występowania znaku przy pierwszym parametrze * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|2}}, {{Code|3}}, {{Code|...}} - są to kategorie, a szablon umieszcza stronę, do tych kategorii, w podkategorii kategorii {{lk|Podręczniki według portalu}}, czy {{lk|Podręczniki według tematu}}, a gdy znak pierwszego parametru jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, * {{Code|język}} - gdy, któreś z parametrów numerowanych oprócz pierwszego ma wartość {{lk|Języki}}, a parametr ten, np. ma wartość {{Parametr|język|indoeuropejskie}}, to ta strona jest również dodawana do kategorii {{lk|Języki indoeuropejskie}}, * {{Code|typ}} - ciąg jaki ma dodawać do podkategorii kategorii {{lk|Podręczniki według statusu}}, np.: {{lk|Kompletne książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub {{lk|Kompletne książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, i do kategorii: {{lk|Akademickie książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub do kategorii {{lk|Akademickie książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, wtedy gdy {{Parametr|poziom|{{lk|Studia}}}}, * {{Code|poziom}} - ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, np {{Parametr|poziom|Studia}}, to szablon wtedy przydziela stronę do kategorii {{lk|Studia}}, ta zmienna jest korzystana do przydzielania kategorii związane w tym przypadku ze studiami, * {{Code|rodzaj}} - ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach {{lk|Inne kategorie książek}}, * {{Code|junior}} - kategorie oddzielone od siebie średnikami (bez elementu na jego początki: '''Wikijunior:'''), w przestrzeni nazw: {{lk2|Wikijunior}}, a więc przykład: {{lk|Wikijunior:Owoce}}, gdy {{Parametr|junior|Owoce}}, do której jest przydzielony podręcznik, * {{Code|korzeń}} - kategoria, korzenia z nazwą sortowania {{Code|{{Nowiki|*}}}}, w której umieszczona jest strona, * {{Code|główna}} - kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona, * {{Code|książka}} - niepusty, gdy kategoria z prefiksem '''Książka:''' ma być sortowana nie jest względem spacji, w kategorii: {{lk|Kategorie książek}}, * {{Code|artykuł}} - z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników, * {{Code|archiwalna}} - gdy niepusty, to szablon w przestrzeniach nazw: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, w tam użytego w podręcznikach i artykułach (jeśli {{lk|Wikizeszyty}}) - jednostki, umieszcza je w kategorii {{lk|Archiwalne}}, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. == Przykład == ; Poniższe przykłady zostały napisane w wynikach z parametrem {{Parametr|id|stary}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na stronie głównej podręcznika w przestrzeni nazw {{Np|User|link=tak}} * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=jednostka użytkownika|nazwa przestrzeni nazw=User|nazwa jednostki=User/Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Liczba wskazująca na stopień ukończenia podręcznika, czy strony wikizeszytu.", "type": "number", "required": true }, "2": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "3": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "4": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "5": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "6": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "7": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "8": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "9": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "10": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "poziom": { "description": "Ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "string" }, "rodzaj": { "description": "Ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach Kategorie książkowe.", "type": "string" }, "junior": { "description": "Kategoria, w przestrzeni nazw: Kategoria:Wikijunior, a więc przykład: Wikijunior:Owoce, gdy | junior = Owoce, do której jest przydzielony podręcznik.", "type": "wiki-page-name" }, "korzeń": { "description": "Kategoria, korzenia z nazwą sortowania *, w której umieszczona jest strona.", "type": "wiki-page-name" }, "główna": { "description": "Kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona.", "type": "wiki-page-name" }, "typ": { "description": "Ciąg jaki ma dodawać do podkategorii kategorii Podręczniki według statusu, np.: Kompletne książki z fizyki, gdy: | typ = z fizyki, lub Kompletne książki z matematyki, gdy: | typ = z matematyki, i do kategorii: \"Akademickie książki z fizyki\", gdy: | typ = z fizyki, lub do kategorii \"Akademickie książki z matematyki\", gdy: | typ = z matematyki, wtedy gdy | poziom = Studia.", "type": "line" }, "archiwalna": { "description": "Gdy niepusty, to szablon w przestrzeni nazw Wikipedysta, w tam użytego w podręcznikach i artykułach - jednostki, umieszcza w kategorii Archiwalne, jednostki.", "type": "string" }, "artykuł": { "description": "Z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników.", "type": "string" } }, "paramOrder": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "poziom", "typ", "rodzaj", "junior", "korzeń", "główna", "artykuł", "archiwalna" ], "description": "Szablon {{Status}} dla podręcznika, i dla stron, jakimi są Wikizeszyty, to on przydziela podręcznik i jego artykuły - w tym ostatnim (jeżeli w nich napisano to wywołanie), do odpowiednich kategorii." } </templatedata> == Zobacz też == {{Status/opis/Zobacz też}} {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategorie | Szablony umieszczane na stronach głównych, książek | Szablony stronicowe woluminów }} </includeonly> 6ltlvtwfbey3ki9u185zr13txsv4qkd 552039 552005 2026-08-16T19:26:36Z Persino 2851 /* Użycie */ 552039 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka|Kategorie}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Ten szablon umieszcza książkę w podkategorii kategorii {{lk|Podręczniki według statusu}} dla użytkowników chcących przeglądać książki {{lr|Etapy rozwoju książek|według jego rozwoju}}, przy braku znaku pierwszego jego parametru, a przy znaku {{Code|-}} i {{Code|+}}, dodaje również stronę do innych kategorii. Szablon, gdy znak pierwszego jego parametru jest ujemny: {{Code|-}}, on to on umieszcza stronę w podkategoriach kategorii: {{lk|Podręczniki według portalu}}, {{lk|Podręczniki według poziomu}} i {{lk|Podręczniki według tematu}}, gdy znak jest dodatni {{Code|+}}, to szablon również umieszcza stronę nie tylko w normalnych kategoriach wcześniej podanych, ale w ich odpowiednikach kategorii {{lk|Polecane książki|polecanych książek}}. Szablon przyjmuje parametr {{Parametr|poziom|Studia}}, to wtedy, szablon umieszcza artykuł w odpowiednich stronach, gdy: {{Parametr|typ|z fizyki}} lub {{Parametr|typ|z matematyki}}, on dodatkowo dodaje zbiór kolejno do kategorii: {{lk|Akademickie książki z fizyki}} lub {{lk|Akademickie książki z matematyki}}. Również przy tym {{Parametr|typ}} szablon wstawia kolejno jednostkę do kategorii, np.: {{lk|Kompletne książki z fizyki}} i {{lk|Kompletne książki z matematyki}}. Gdy z jednych z parametrów nienazwanych szablonów, oprócz pierwszego, jest, np.: {{Parametr|język|indoeuropejskie}}, to szablon stronę nie tylko dodaje do kategorii {{lk|Języki}}, pod warunkiem, jeżeli, któreś z parametrów numerowanych, oprócz pierwszego jest {{lk|Języki}}, ale również do kategorii {{lk|Języki indoeuropejskie}}, na podstawie tego. Gdy mamy parametr, np.: {{Parametr|rodzaj|Edukacja}}, to szablon dodaje tą stronę do stron w podkategorii kategorii {{lk|Inne kategorie książek}}, czyli tutaj {{lk|Edukacja}}. Gdy parametr {{Code|junior}} jest niepusty, czyli: {{Parametr|junior|Owoce}}, wtedy szablon dodaje stronę do kategorii w przestrzeni nazw {{lk2|Wikijunior}}, tutaj w kategorii {{lk|Wikijunior:Owoce}}. Szablon dodaje do jednych z podkategorii kategorii {{lk|Spis alfabetyczny}}, przy znaku {{Code|-}}, a przy znaku {{Code|+}}, dodaje również do podkategorii kategorii {{lk|Polecane książki/Spis alfabetyczny}}. Parametry {{Parametr|rodzaj}} i {{Parametr|poziom}}, przyjmowano wcześniej, że to tam jest nazwa kategorii, a jeżeli te parametr będą zawierały kolejno zmienną oddzielone kategorie średnikami, to algorytm szablonu {{s|Status}} analizuje dla każdej z tych kategorii na podstawie tych podanych zmiennych. Szablon dla jakiegoś znaku dodaje stronę do kategorii {{lk|Wszystkie książki}}. Gdy strona należy do kategorii {{Parametr|rodzaj|{{lk|Wikizeszyty}}}}, to ten szablon umieszczamy również w podstronach podręcznika wikizeszytu, wtedy w tych artykułach (przy użyciu dodatkowego parametru), będące podstronami podręcznika, szablon dodaje stronę do kategorii, jak dla strony głównej podręcznika, oprócz kategorii: {{lk|Wszystkie książki}}, podręczników według czegoś i spisów alfabetycznych oraz ich odpowiedników polecanych kategorii, jeżeli użyjemy parametry {{Parametr|artykuł|tak}}, a jeżeli go nie użyjemy, to dla strony głównej podręcznika. Gdy użyjemy zmiennej {{Parametr|archiwalna|tak}} na stronie, to szablon umieszcza ją w kategorii {{lk|Archiwalne}}. Gdy szablon umieścimy w przestrzeni nazw {{Np|User|link=tak}} lub {{lr2|Brudnopis}}, w tam podręcznikach i artykułach - jednostkach, przy użyciu tego szablonu, to on umieszcza stronę w kategorii kolejno w: {{lk|Wszystkie książki użytkowników}} lub {{lk|Wszystkie książki w brudnopisie projektu}}. Gdy jeden z numerowanych zmiennych kategorii ma przedrostek {{Code|Książka:}} w wywołaniu, wtedy książka jest przydzielana do jednych z kategorii niepolecanych, która należy do kategorii {{lk|Kategorie książek}}, np.: {{Parametr|2|{{lk|Książka:Książka kucharska}}}} (wtedy szablon przydziela stronę do kategorii {{lk|Książka:Książka kucharska}}), wtedy nazwa sortowania jest równa spacji, a gdy dodatkowo dodamy parametr {{Parametr|książka}}, wtedy nazwa sortowania jest nierówna spacji i jest niepusta. Gdy kategoria książkowa nie jest podana, gdy podamy {{Parametr|książka|tak}}, to nazwa sortowania nie jest pusta i nie jest równa spacji, dla kategorii książkowej, a gdy go nie podamy, to nazwa sortowania jest równa spacji, to szablon generuje kategorię książkową, z tą nazwą sortowania, dla tego podręcznika, jeśli istnieje, tzn.: jeśli nazwa książki jest "{{lg|Książka kucharska}}", to ten podręcznik jest przydzielany do kategorii "{{lk|Książka:Książka kucharska}}". == Użycie szablonu do zgłaszania interwiki w iddentyfikatorze == Interwiki w identyfikatorze zgłaszane przez szablon są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablon obsługuje interwiki projektów{{dk}} * {{NAZWASERWISU|link=tak|klucz projektu=pl:w}} - polska '''Wikipedia''', * {{NAZWASERWISU|link=tak|klucz projektu=en:b}} - angielski '''Wikibooks''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:s}} - polskie '''Wikiźródła''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:q}} - polskie '''Wicytaty''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:wikt}} - polski '''Wikisłownik''', * {{NAZWASERWISU|link=tak|klucz projektu=en:v}} - angielski '''Wikiwersytet''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:n}} - polskie '''Wikiwiadomości''', * {{NAZWASERWISU|link=tak|klucz projektu=d}} - angielskojęzyczne '''Wikidane'''. == Opis parametrów == {{OverflowWiersz|<!-- -->{{Tabelka|klasa=wikitable|styl=white-space:nowrap;margin-top:0.5em;margin-bottom:0.5em|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Użycie}}<!-- -->{{Komórka|nagłówek=tak|Szablon dodaje książkę do:}}<!-- -->{{Komórka|nagłówek=tak|Odpowiedniki w {{lk2|Polecane książki}}:}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|100%}}{{•}} {{s|status|-100%|...}}{{•}} {{s|status|+100%|...}}}}<!-- -->{{Komórka|{{lk|Kompletne książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Kompletne książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|75%}}{{•}} {{s|status|-75%|...}}{{•}} {{s|status|+75%|...}}}}<!-- -->{{Komórka|{{lk|Książki na ukończeniu}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki na ukończeniu}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|50%}}{{•}} {{s|status|-50%|...}}{{•}} {{s|status|+50%|...}}}}<!-- -->{{Komórka|{{lk|Książki wymagające dopracowania}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki wymagające dopracowania}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|25%}}{{•}} {{s|status|-25%|...}}{{•}} {{s|status|+25%|...}}}}<!-- -->{{Komórka|{{lk|Rozpoczęte książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Rozpoczęte książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|0%}}{{•}} {{s|status|-0%|...}}{{•}} {{s|status|+0%|...}}}}<!-- -->{{Komórka|{{lk|Zalążki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Zalążki}}}}<!-- -->}}<!-- -->}}<!-- -->}} == Parametry == ; Parametry szablonu w wywołaniu podstawowym przy pierwszym parametrze bez znaku * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. ; Parametry szablonu w wywołaniu rozszerzonym w przypadku występowania znaku przy pierwszym parametrze * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|2}}, {{Code|3}}, {{Code|...}} - są to kategorie, a szablon umieszcza stronę, do tych kategorii, w podkategorii kategorii {{lk|Podręczniki według portalu}}, czy {{lk|Podręczniki według tematu}}, a gdy znak pierwszego parametru jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, * {{Code|język}} - gdy, któreś z parametrów numerowanych oprócz pierwszego ma wartość {{lk|Języki}}, a parametr ten, np. ma wartość {{Parametr|język|indoeuropejskie}}, to ta strona jest również dodawana do kategorii {{lk|Języki indoeuropejskie}}, * {{Code|typ}} - ciąg jaki ma dodawać do podkategorii kategorii {{lk|Podręczniki według statusu}}, np.: {{lk|Kompletne książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub {{lk|Kompletne książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, i do kategorii: {{lk|Akademickie książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub do kategorii {{lk|Akademickie książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, wtedy gdy {{Parametr|poziom|{{lk|Studia}}}}, * {{Code|poziom}} - ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, np {{Parametr|poziom|Studia}}, to szablon wtedy przydziela stronę do kategorii {{lk|Studia}}, ta zmienna jest korzystana do przydzielania kategorii związane w tym przypadku ze studiami, * {{Code|rodzaj}} - ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach {{lk|Inne kategorie książek}}, * {{Code|junior}} - kategorie oddzielone od siebie średnikami (bez elementu na jego początki: '''Wikijunior:'''), w przestrzeni nazw: {{lk2|Wikijunior}}, a więc przykład: {{lk|Wikijunior:Owoce}}, gdy {{Parametr|junior|Owoce}}, do której jest przydzielony podręcznik, * {{Code|korzeń}} - kategoria, korzenia z nazwą sortowania {{Code|{{Nowiki|*}}}}, w której umieszczona jest strona, * {{Code|główna}} - kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona, * {{Code|książka}} - niepusty, gdy kategoria z prefiksem '''Książka:''' ma być sortowana nie jest względem spacji, w kategorii: {{lk|Kategorie książek}}, * {{Code|artykuł}} - z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników, * {{Code|archiwalna}} - gdy niepusty, to szablon w przestrzeniach nazw: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, w tam użytego w podręcznikach i artykułach (jeśli {{lk|Wikizeszyty}}) - jednostki, umieszcza je w kategorii {{lk|Archiwalne}}, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. == Przykład == ; Poniższe przykłady zostały napisane w wynikach z parametrem {{Parametr|id|stary}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na stronie głównej podręcznika w przestrzeni nazw {{Np|User|link=tak}} * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=jednostka użytkownika|nazwa przestrzeni nazw=User|nazwa jednostki=User/Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Liczba wskazująca na stopień ukończenia podręcznika, czy strony wikizeszytu.", "type": "number", "required": true }, "2": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "3": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "4": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "5": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "6": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "7": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "8": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "9": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "10": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "poziom": { "description": "Ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "string" }, "rodzaj": { "description": "Ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach Kategorie książkowe.", "type": "string" }, "junior": { "description": "Kategoria, w przestrzeni nazw: Kategoria:Wikijunior, a więc przykład: Wikijunior:Owoce, gdy | junior = Owoce, do której jest przydzielony podręcznik.", "type": "wiki-page-name" }, "korzeń": { "description": "Kategoria, korzenia z nazwą sortowania *, w której umieszczona jest strona.", "type": "wiki-page-name" }, "główna": { "description": "Kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona.", "type": "wiki-page-name" }, "typ": { "description": "Ciąg jaki ma dodawać do podkategorii kategorii Podręczniki według statusu, np.: Kompletne książki z fizyki, gdy: | typ = z fizyki, lub Kompletne książki z matematyki, gdy: | typ = z matematyki, i do kategorii: \"Akademickie książki z fizyki\", gdy: | typ = z fizyki, lub do kategorii \"Akademickie książki z matematyki\", gdy: | typ = z matematyki, wtedy gdy | poziom = Studia.", "type": "line" }, "archiwalna": { "description": "Gdy niepusty, to szablon w przestrzeni nazw Wikipedysta, w tam użytego w podręcznikach i artykułach - jednostki, umieszcza w kategorii Archiwalne, jednostki.", "type": "string" }, "artykuł": { "description": "Z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników.", "type": "string" } }, "paramOrder": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "poziom", "typ", "rodzaj", "junior", "korzeń", "główna", "artykuł", "archiwalna" ], "description": "Szablon {{Status}} dla podręcznika, i dla stron, jakimi są Wikizeszyty, to on przydziela podręcznik i jego artykuły - w tym ostatnim (jeżeli w nich napisano to wywołanie), do odpowiednich kategorii." } </templatedata> == Zobacz też == {{Status/opis/Zobacz też}} {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategorie | Szablony umieszczane na stronach głównych, książek | Szablony stronicowe woluminów }} </includeonly> 0v3urc5ljv2uyq8293gug65207jhs49 552049 552039 2026-08-16T20:12:28Z Persino 2851 /* Użycie szablonu do zgłaszania interwiki w iddentyfikatorze */ 552049 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka|Kategorie}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Ten szablon umieszcza książkę w podkategorii kategorii {{lk|Podręczniki według statusu}} dla użytkowników chcących przeglądać książki {{lr|Etapy rozwoju książek|według jego rozwoju}}, przy braku znaku pierwszego jego parametru, a przy znaku {{Code|-}} i {{Code|+}}, dodaje również stronę do innych kategorii. Szablon, gdy znak pierwszego jego parametru jest ujemny: {{Code|-}}, on to on umieszcza stronę w podkategoriach kategorii: {{lk|Podręczniki według portalu}}, {{lk|Podręczniki według poziomu}} i {{lk|Podręczniki według tematu}}, gdy znak jest dodatni {{Code|+}}, to szablon również umieszcza stronę nie tylko w normalnych kategoriach wcześniej podanych, ale w ich odpowiednikach kategorii {{lk|Polecane książki|polecanych książek}}. Szablon przyjmuje parametr {{Parametr|poziom|Studia}}, to wtedy, szablon umieszcza artykuł w odpowiednich stronach, gdy: {{Parametr|typ|z fizyki}} lub {{Parametr|typ|z matematyki}}, on dodatkowo dodaje zbiór kolejno do kategorii: {{lk|Akademickie książki z fizyki}} lub {{lk|Akademickie książki z matematyki}}. Również przy tym {{Parametr|typ}} szablon wstawia kolejno jednostkę do kategorii, np.: {{lk|Kompletne książki z fizyki}} i {{lk|Kompletne książki z matematyki}}. Gdy z jednych z parametrów nienazwanych szablonów, oprócz pierwszego, jest, np.: {{Parametr|język|indoeuropejskie}}, to szablon stronę nie tylko dodaje do kategorii {{lk|Języki}}, pod warunkiem, jeżeli, któreś z parametrów numerowanych, oprócz pierwszego jest {{lk|Języki}}, ale również do kategorii {{lk|Języki indoeuropejskie}}, na podstawie tego. Gdy mamy parametr, np.: {{Parametr|rodzaj|Edukacja}}, to szablon dodaje tą stronę do stron w podkategorii kategorii {{lk|Inne kategorie książek}}, czyli tutaj {{lk|Edukacja}}. Gdy parametr {{Code|junior}} jest niepusty, czyli: {{Parametr|junior|Owoce}}, wtedy szablon dodaje stronę do kategorii w przestrzeni nazw {{lk2|Wikijunior}}, tutaj w kategorii {{lk|Wikijunior:Owoce}}. Szablon dodaje do jednych z podkategorii kategorii {{lk|Spis alfabetyczny}}, przy znaku {{Code|-}}, a przy znaku {{Code|+}}, dodaje również do podkategorii kategorii {{lk|Polecane książki/Spis alfabetyczny}}. Parametry {{Parametr|rodzaj}} i {{Parametr|poziom}}, przyjmowano wcześniej, że to tam jest nazwa kategorii, a jeżeli te parametr będą zawierały kolejno zmienną oddzielone kategorie średnikami, to algorytm szablonu {{s|Status}} analizuje dla każdej z tych kategorii na podstawie tych podanych zmiennych. Szablon dla jakiegoś znaku dodaje stronę do kategorii {{lk|Wszystkie książki}}. Gdy strona należy do kategorii {{Parametr|rodzaj|{{lk|Wikizeszyty}}}}, to ten szablon umieszczamy również w podstronach podręcznika wikizeszytu, wtedy w tych artykułach (przy użyciu dodatkowego parametru), będące podstronami podręcznika, szablon dodaje stronę do kategorii, jak dla strony głównej podręcznika, oprócz kategorii: {{lk|Wszystkie książki}}, podręczników według czegoś i spisów alfabetycznych oraz ich odpowiedników polecanych kategorii, jeżeli użyjemy parametry {{Parametr|artykuł|tak}}, a jeżeli go nie użyjemy, to dla strony głównej podręcznika. Gdy użyjemy zmiennej {{Parametr|archiwalna|tak}} na stronie, to szablon umieszcza ją w kategorii {{lk|Archiwalne}}. Gdy szablon umieścimy w przestrzeni nazw {{Np|User|link=tak}} lub {{lr2|Brudnopis}}, w tam podręcznikach i artykułach - jednostkach, przy użyciu tego szablonu, to on umieszcza stronę w kategorii kolejno w: {{lk|Wszystkie książki użytkowników}} lub {{lk|Wszystkie książki w brudnopisie projektu}}. Gdy jeden z numerowanych zmiennych kategorii ma przedrostek {{Code|Książka:}} w wywołaniu, wtedy książka jest przydzielana do jednych z kategorii niepolecanych, która należy do kategorii {{lk|Kategorie książek}}, np.: {{Parametr|2|{{lk|Książka:Książka kucharska}}}} (wtedy szablon przydziela stronę do kategorii {{lk|Książka:Książka kucharska}}), wtedy nazwa sortowania jest równa spacji, a gdy dodatkowo dodamy parametr {{Parametr|książka}}, wtedy nazwa sortowania jest nierówna spacji i jest niepusta. Gdy kategoria książkowa nie jest podana, gdy podamy {{Parametr|książka|tak}}, to nazwa sortowania nie jest pusta i nie jest równa spacji, dla kategorii książkowej, a gdy go nie podamy, to nazwa sortowania jest równa spacji, to szablon generuje kategorię książkową, z tą nazwą sortowania, dla tego podręcznika, jeśli istnieje, tzn.: jeśli nazwa książki jest "{{lg|Książka kucharska}}", to ten podręcznik jest przydzielany do kategorii "{{lk|Książka:Książka kucharska}}". == Użycie szablonu do zgłaszania interwiki w iddentyfikatorze == Interwiki w identyfikatorze zgłaszane przez szablon są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablon obsługuje interwiki projektów{{dk}} * {{NAZWASERWISU|link=tak|klucz projektu=pl:w}} - polska '''Wikipedia''', * {{NAZWASERWISU|link=tak|klucz projektu=en:b}} - angielski '''Wikibooks''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:s}} - polskie '''Wikiźródła''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:q}} - polskie '''Wicytaty''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:wikt}} - polski '''Wikisłownik''', * {{NAZWASERWISU|link=tak|klucz projektu=en:v}} - angielski '''Wikiuniwersytet''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:n}} - polskie '''Wikiwiadomości''', * {{NAZWASERWISU|link=tak|klucz projektu=d}} - angielskojęzyczne '''Wikidane'''. == Opis parametrów == {{OverflowWiersz|<!-- -->{{Tabelka|klasa=wikitable|styl=white-space:nowrap;margin-top:0.5em;margin-bottom:0.5em|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Użycie}}<!-- -->{{Komórka|nagłówek=tak|Szablon dodaje książkę do:}}<!-- -->{{Komórka|nagłówek=tak|Odpowiedniki w {{lk2|Polecane książki}}:}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|100%}}{{•}} {{s|status|-100%|...}}{{•}} {{s|status|+100%|...}}}}<!-- -->{{Komórka|{{lk|Kompletne książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Kompletne książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|75%}}{{•}} {{s|status|-75%|...}}{{•}} {{s|status|+75%|...}}}}<!-- -->{{Komórka|{{lk|Książki na ukończeniu}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki na ukończeniu}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|50%}}{{•}} {{s|status|-50%|...}}{{•}} {{s|status|+50%|...}}}}<!-- -->{{Komórka|{{lk|Książki wymagające dopracowania}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki wymagające dopracowania}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|25%}}{{•}} {{s|status|-25%|...}}{{•}} {{s|status|+25%|...}}}}<!-- -->{{Komórka|{{lk|Rozpoczęte książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Rozpoczęte książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|0%}}{{•}} {{s|status|-0%|...}}{{•}} {{s|status|+0%|...}}}}<!-- -->{{Komórka|{{lk|Zalążki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Zalążki}}}}<!-- -->}}<!-- -->}}<!-- -->}} == Parametry == ; Parametry szablonu w wywołaniu podstawowym przy pierwszym parametrze bez znaku * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. ; Parametry szablonu w wywołaniu rozszerzonym w przypadku występowania znaku przy pierwszym parametrze * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|2}}, {{Code|3}}, {{Code|...}} - są to kategorie, a szablon umieszcza stronę, do tych kategorii, w podkategorii kategorii {{lk|Podręczniki według portalu}}, czy {{lk|Podręczniki według tematu}}, a gdy znak pierwszego parametru jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, * {{Code|język}} - gdy, któreś z parametrów numerowanych oprócz pierwszego ma wartość {{lk|Języki}}, a parametr ten, np. ma wartość {{Parametr|język|indoeuropejskie}}, to ta strona jest również dodawana do kategorii {{lk|Języki indoeuropejskie}}, * {{Code|typ}} - ciąg jaki ma dodawać do podkategorii kategorii {{lk|Podręczniki według statusu}}, np.: {{lk|Kompletne książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub {{lk|Kompletne książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, i do kategorii: {{lk|Akademickie książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub do kategorii {{lk|Akademickie książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, wtedy gdy {{Parametr|poziom|{{lk|Studia}}}}, * {{Code|poziom}} - ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, np {{Parametr|poziom|Studia}}, to szablon wtedy przydziela stronę do kategorii {{lk|Studia}}, ta zmienna jest korzystana do przydzielania kategorii związane w tym przypadku ze studiami, * {{Code|rodzaj}} - ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach {{lk|Inne kategorie książek}}, * {{Code|junior}} - kategorie oddzielone od siebie średnikami (bez elementu na jego początki: '''Wikijunior:'''), w przestrzeni nazw: {{lk2|Wikijunior}}, a więc przykład: {{lk|Wikijunior:Owoce}}, gdy {{Parametr|junior|Owoce}}, do której jest przydzielony podręcznik, * {{Code|korzeń}} - kategoria, korzenia z nazwą sortowania {{Code|{{Nowiki|*}}}}, w której umieszczona jest strona, * {{Code|główna}} - kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona, * {{Code|książka}} - niepusty, gdy kategoria z prefiksem '''Książka:''' ma być sortowana nie jest względem spacji, w kategorii: {{lk|Kategorie książek}}, * {{Code|artykuł}} - z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników, * {{Code|archiwalna}} - gdy niepusty, to szablon w przestrzeniach nazw: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, w tam użytego w podręcznikach i artykułach (jeśli {{lk|Wikizeszyty}}) - jednostki, umieszcza je w kategorii {{lk|Archiwalne}}, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. == Przykład == ; Poniższe przykłady zostały napisane w wynikach z parametrem {{Parametr|id|stary}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na stronie głównej podręcznika w przestrzeni nazw {{Np|User|link=tak}} * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=jednostka użytkownika|nazwa przestrzeni nazw=User|nazwa jednostki=User/Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Liczba wskazująca na stopień ukończenia podręcznika, czy strony wikizeszytu.", "type": "number", "required": true }, "2": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "3": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "4": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "5": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "6": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "7": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "8": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "9": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "10": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "poziom": { "description": "Ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "string" }, "rodzaj": { "description": "Ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach Kategorie książkowe.", "type": "string" }, "junior": { "description": "Kategoria, w przestrzeni nazw: Kategoria:Wikijunior, a więc przykład: Wikijunior:Owoce, gdy | junior = Owoce, do której jest przydzielony podręcznik.", "type": "wiki-page-name" }, "korzeń": { "description": "Kategoria, korzenia z nazwą sortowania *, w której umieszczona jest strona.", "type": "wiki-page-name" }, "główna": { "description": "Kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona.", "type": "wiki-page-name" }, "typ": { "description": "Ciąg jaki ma dodawać do podkategorii kategorii Podręczniki według statusu, np.: Kompletne książki z fizyki, gdy: | typ = z fizyki, lub Kompletne książki z matematyki, gdy: | typ = z matematyki, i do kategorii: \"Akademickie książki z fizyki\", gdy: | typ = z fizyki, lub do kategorii \"Akademickie książki z matematyki\", gdy: | typ = z matematyki, wtedy gdy | poziom = Studia.", "type": "line" }, "archiwalna": { "description": "Gdy niepusty, to szablon w przestrzeni nazw Wikipedysta, w tam użytego w podręcznikach i artykułach - jednostki, umieszcza w kategorii Archiwalne, jednostki.", "type": "string" }, "artykuł": { "description": "Z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników.", "type": "string" } }, "paramOrder": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "poziom", "typ", "rodzaj", "junior", "korzeń", "główna", "artykuł", "archiwalna" ], "description": "Szablon {{Status}} dla podręcznika, i dla stron, jakimi są Wikizeszyty, to on przydziela podręcznik i jego artykuły - w tym ostatnim (jeżeli w nich napisano to wywołanie), do odpowiednich kategorii." } </templatedata> == Zobacz też == {{Status/opis/Zobacz też}} {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategorie | Szablony umieszczane na stronach głównych, książek | Szablony stronicowe woluminów }} </includeonly> ro22j6kfwhvgl90hrcrxsn7hf4vs08w 552050 552049 2026-08-16T20:13:45Z Persino 2851 /* Użycie szablonu do zgłaszania interwiki w iddentyfikatorze */ 552050 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka|Kategorie}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Ten szablon umieszcza książkę w podkategorii kategorii {{lk|Podręczniki według statusu}} dla użytkowników chcących przeglądać książki {{lr|Etapy rozwoju książek|według jego rozwoju}}, przy braku znaku pierwszego jego parametru, a przy znaku {{Code|-}} i {{Code|+}}, dodaje również stronę do innych kategorii. Szablon, gdy znak pierwszego jego parametru jest ujemny: {{Code|-}}, on to on umieszcza stronę w podkategoriach kategorii: {{lk|Podręczniki według portalu}}, {{lk|Podręczniki według poziomu}} i {{lk|Podręczniki według tematu}}, gdy znak jest dodatni {{Code|+}}, to szablon również umieszcza stronę nie tylko w normalnych kategoriach wcześniej podanych, ale w ich odpowiednikach kategorii {{lk|Polecane książki|polecanych książek}}. Szablon przyjmuje parametr {{Parametr|poziom|Studia}}, to wtedy, szablon umieszcza artykuł w odpowiednich stronach, gdy: {{Parametr|typ|z fizyki}} lub {{Parametr|typ|z matematyki}}, on dodatkowo dodaje zbiór kolejno do kategorii: {{lk|Akademickie książki z fizyki}} lub {{lk|Akademickie książki z matematyki}}. Również przy tym {{Parametr|typ}} szablon wstawia kolejno jednostkę do kategorii, np.: {{lk|Kompletne książki z fizyki}} i {{lk|Kompletne książki z matematyki}}. Gdy z jednych z parametrów nienazwanych szablonów, oprócz pierwszego, jest, np.: {{Parametr|język|indoeuropejskie}}, to szablon stronę nie tylko dodaje do kategorii {{lk|Języki}}, pod warunkiem, jeżeli, któreś z parametrów numerowanych, oprócz pierwszego jest {{lk|Języki}}, ale również do kategorii {{lk|Języki indoeuropejskie}}, na podstawie tego. Gdy mamy parametr, np.: {{Parametr|rodzaj|Edukacja}}, to szablon dodaje tą stronę do stron w podkategorii kategorii {{lk|Inne kategorie książek}}, czyli tutaj {{lk|Edukacja}}. Gdy parametr {{Code|junior}} jest niepusty, czyli: {{Parametr|junior|Owoce}}, wtedy szablon dodaje stronę do kategorii w przestrzeni nazw {{lk2|Wikijunior}}, tutaj w kategorii {{lk|Wikijunior:Owoce}}. Szablon dodaje do jednych z podkategorii kategorii {{lk|Spis alfabetyczny}}, przy znaku {{Code|-}}, a przy znaku {{Code|+}}, dodaje również do podkategorii kategorii {{lk|Polecane książki/Spis alfabetyczny}}. Parametry {{Parametr|rodzaj}} i {{Parametr|poziom}}, przyjmowano wcześniej, że to tam jest nazwa kategorii, a jeżeli te parametr będą zawierały kolejno zmienną oddzielone kategorie średnikami, to algorytm szablonu {{s|Status}} analizuje dla każdej z tych kategorii na podstawie tych podanych zmiennych. Szablon dla jakiegoś znaku dodaje stronę do kategorii {{lk|Wszystkie książki}}. Gdy strona należy do kategorii {{Parametr|rodzaj|{{lk|Wikizeszyty}}}}, to ten szablon umieszczamy również w podstronach podręcznika wikizeszytu, wtedy w tych artykułach (przy użyciu dodatkowego parametru), będące podstronami podręcznika, szablon dodaje stronę do kategorii, jak dla strony głównej podręcznika, oprócz kategorii: {{lk|Wszystkie książki}}, podręczników według czegoś i spisów alfabetycznych oraz ich odpowiedników polecanych kategorii, jeżeli użyjemy parametry {{Parametr|artykuł|tak}}, a jeżeli go nie użyjemy, to dla strony głównej podręcznika. Gdy użyjemy zmiennej {{Parametr|archiwalna|tak}} na stronie, to szablon umieszcza ją w kategorii {{lk|Archiwalne}}. Gdy szablon umieścimy w przestrzeni nazw {{Np|User|link=tak}} lub {{lr2|Brudnopis}}, w tam podręcznikach i artykułach - jednostkach, przy użyciu tego szablonu, to on umieszcza stronę w kategorii kolejno w: {{lk|Wszystkie książki użytkowników}} lub {{lk|Wszystkie książki w brudnopisie projektu}}. Gdy jeden z numerowanych zmiennych kategorii ma przedrostek {{Code|Książka:}} w wywołaniu, wtedy książka jest przydzielana do jednych z kategorii niepolecanych, która należy do kategorii {{lk|Kategorie książek}}, np.: {{Parametr|2|{{lk|Książka:Książka kucharska}}}} (wtedy szablon przydziela stronę do kategorii {{lk|Książka:Książka kucharska}}), wtedy nazwa sortowania jest równa spacji, a gdy dodatkowo dodamy parametr {{Parametr|książka}}, wtedy nazwa sortowania jest nierówna spacji i jest niepusta. Gdy kategoria książkowa nie jest podana, gdy podamy {{Parametr|książka|tak}}, to nazwa sortowania nie jest pusta i nie jest równa spacji, dla kategorii książkowej, a gdy go nie podamy, to nazwa sortowania jest równa spacji, to szablon generuje kategorię książkową, z tą nazwą sortowania, dla tego podręcznika, jeśli istnieje, tzn.: jeśli nazwa książki jest "{{lg|Książka kucharska}}", to ten podręcznik jest przydzielany do kategorii "{{lk|Książka:Książka kucharska}}". == Użycie szablonu do zgłaszania interwiki w iddentyfikatorze == Interwiki w identyfikatorze zgłaszane przez szablon są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablon obsługuje interwiki projektów{{dk}} * {{NAZWASERWISU|link=tak|klucz projektu=pl:w}} - polska '''Wikiencyklopedia''', * {{NAZWASERWISU|link=tak|klucz projektu=en:b}} - angielski '''Wikiksiążki''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:s}} - polskie '''Wikiźródła''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:q}} - polskie '''Wicytaty''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:wikt}} - polski '''Wikisłownik''', * {{NAZWASERWISU|link=tak|klucz projektu=en:v}} - angielski '''Wikiuniwersytet''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:n}} - polskie '''Wikiwiadomości''', * {{NAZWASERWISU|link=tak|klucz projektu=d}} - angielskojęzyczne '''Wikidane'''. == Opis parametrów == {{OverflowWiersz|<!-- -->{{Tabelka|klasa=wikitable|styl=white-space:nowrap;margin-top:0.5em;margin-bottom:0.5em|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Użycie}}<!-- -->{{Komórka|nagłówek=tak|Szablon dodaje książkę do:}}<!-- -->{{Komórka|nagłówek=tak|Odpowiedniki w {{lk2|Polecane książki}}:}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|100%}}{{•}} {{s|status|-100%|...}}{{•}} {{s|status|+100%|...}}}}<!-- -->{{Komórka|{{lk|Kompletne książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Kompletne książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|75%}}{{•}} {{s|status|-75%|...}}{{•}} {{s|status|+75%|...}}}}<!-- -->{{Komórka|{{lk|Książki na ukończeniu}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki na ukończeniu}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|50%}}{{•}} {{s|status|-50%|...}}{{•}} {{s|status|+50%|...}}}}<!-- -->{{Komórka|{{lk|Książki wymagające dopracowania}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki wymagające dopracowania}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|25%}}{{•}} {{s|status|-25%|...}}{{•}} {{s|status|+25%|...}}}}<!-- -->{{Komórka|{{lk|Rozpoczęte książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Rozpoczęte książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|0%}}{{•}} {{s|status|-0%|...}}{{•}} {{s|status|+0%|...}}}}<!-- -->{{Komórka|{{lk|Zalążki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Zalążki}}}}<!-- -->}}<!-- -->}}<!-- -->}} == Parametry == ; Parametry szablonu w wywołaniu podstawowym przy pierwszym parametrze bez znaku * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. ; Parametry szablonu w wywołaniu rozszerzonym w przypadku występowania znaku przy pierwszym parametrze * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|2}}, {{Code|3}}, {{Code|...}} - są to kategorie, a szablon umieszcza stronę, do tych kategorii, w podkategorii kategorii {{lk|Podręczniki według portalu}}, czy {{lk|Podręczniki według tematu}}, a gdy znak pierwszego parametru jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, * {{Code|język}} - gdy, któreś z parametrów numerowanych oprócz pierwszego ma wartość {{lk|Języki}}, a parametr ten, np. ma wartość {{Parametr|język|indoeuropejskie}}, to ta strona jest również dodawana do kategorii {{lk|Języki indoeuropejskie}}, * {{Code|typ}} - ciąg jaki ma dodawać do podkategorii kategorii {{lk|Podręczniki według statusu}}, np.: {{lk|Kompletne książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub {{lk|Kompletne książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, i do kategorii: {{lk|Akademickie książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub do kategorii {{lk|Akademickie książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, wtedy gdy {{Parametr|poziom|{{lk|Studia}}}}, * {{Code|poziom}} - ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, np {{Parametr|poziom|Studia}}, to szablon wtedy przydziela stronę do kategorii {{lk|Studia}}, ta zmienna jest korzystana do przydzielania kategorii związane w tym przypadku ze studiami, * {{Code|rodzaj}} - ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach {{lk|Inne kategorie książek}}, * {{Code|junior}} - kategorie oddzielone od siebie średnikami (bez elementu na jego początki: '''Wikijunior:'''), w przestrzeni nazw: {{lk2|Wikijunior}}, a więc przykład: {{lk|Wikijunior:Owoce}}, gdy {{Parametr|junior|Owoce}}, do której jest przydzielony podręcznik, * {{Code|korzeń}} - kategoria, korzenia z nazwą sortowania {{Code|{{Nowiki|*}}}}, w której umieszczona jest strona, * {{Code|główna}} - kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona, * {{Code|książka}} - niepusty, gdy kategoria z prefiksem '''Książka:''' ma być sortowana nie jest względem spacji, w kategorii: {{lk|Kategorie książek}}, * {{Code|artykuł}} - z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników, * {{Code|archiwalna}} - gdy niepusty, to szablon w przestrzeniach nazw: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, w tam użytego w podręcznikach i artykułach (jeśli {{lk|Wikizeszyty}}) - jednostki, umieszcza je w kategorii {{lk|Archiwalne}}, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. == Przykład == ; Poniższe przykłady zostały napisane w wynikach z parametrem {{Parametr|id|stary}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na stronie głównej podręcznika w przestrzeni nazw {{Np|User|link=tak}} * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=jednostka użytkownika|nazwa przestrzeni nazw=User|nazwa jednostki=User/Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Liczba wskazująca na stopień ukończenia podręcznika, czy strony wikizeszytu.", "type": "number", "required": true }, "2": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "3": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "4": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "5": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "6": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "7": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "8": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "9": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "10": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "poziom": { "description": "Ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "string" }, "rodzaj": { "description": "Ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach Kategorie książkowe.", "type": "string" }, "junior": { "description": "Kategoria, w przestrzeni nazw: Kategoria:Wikijunior, a więc przykład: Wikijunior:Owoce, gdy | junior = Owoce, do której jest przydzielony podręcznik.", "type": "wiki-page-name" }, "korzeń": { "description": "Kategoria, korzenia z nazwą sortowania *, w której umieszczona jest strona.", "type": "wiki-page-name" }, "główna": { "description": "Kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona.", "type": "wiki-page-name" }, "typ": { "description": "Ciąg jaki ma dodawać do podkategorii kategorii Podręczniki według statusu, np.: Kompletne książki z fizyki, gdy: | typ = z fizyki, lub Kompletne książki z matematyki, gdy: | typ = z matematyki, i do kategorii: \"Akademickie książki z fizyki\", gdy: | typ = z fizyki, lub do kategorii \"Akademickie książki z matematyki\", gdy: | typ = z matematyki, wtedy gdy | poziom = Studia.", "type": "line" }, "archiwalna": { "description": "Gdy niepusty, to szablon w przestrzeni nazw Wikipedysta, w tam użytego w podręcznikach i artykułach - jednostki, umieszcza w kategorii Archiwalne, jednostki.", "type": "string" }, "artykuł": { "description": "Z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników.", "type": "string" } }, "paramOrder": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "poziom", "typ", "rodzaj", "junior", "korzeń", "główna", "artykuł", "archiwalna" ], "description": "Szablon {{Status}} dla podręcznika, i dla stron, jakimi są Wikizeszyty, to on przydziela podręcznik i jego artykuły - w tym ostatnim (jeżeli w nich napisano to wywołanie), do odpowiednich kategorii." } </templatedata> == Zobacz też == {{Status/opis/Zobacz też}} {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategorie | Szablony umieszczane na stronach głównych, książek | Szablony stronicowe woluminów }} </includeonly> 5ue52r0mtzt0jl9q02y8xb15b1r698x 552051 552050 2026-08-16T20:14:16Z Persino 2851 /* Użycie szablonu do zgłaszania interwiki w iddentyfikatorze */ 552051 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Ramka|Kategorie}} {{Wysokie ryzyko|częste użycie}} {{Wysokie ryzyko|skomplikowany}} {{Szablony stronicowe}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> == Użycie == Ten szablon umieszcza książkę w podkategorii kategorii {{lk|Podręczniki według statusu}} dla użytkowników chcących przeglądać książki {{lr|Etapy rozwoju książek|według jego rozwoju}}, przy braku znaku pierwszego jego parametru, a przy znaku {{Code|-}} i {{Code|+}}, dodaje również stronę do innych kategorii. Szablon, gdy znak pierwszego jego parametru jest ujemny: {{Code|-}}, on to on umieszcza stronę w podkategoriach kategorii: {{lk|Podręczniki według portalu}}, {{lk|Podręczniki według poziomu}} i {{lk|Podręczniki według tematu}}, gdy znak jest dodatni {{Code|+}}, to szablon również umieszcza stronę nie tylko w normalnych kategoriach wcześniej podanych, ale w ich odpowiednikach kategorii {{lk|Polecane książki|polecanych książek}}. Szablon przyjmuje parametr {{Parametr|poziom|Studia}}, to wtedy, szablon umieszcza artykuł w odpowiednich stronach, gdy: {{Parametr|typ|z fizyki}} lub {{Parametr|typ|z matematyki}}, on dodatkowo dodaje zbiór kolejno do kategorii: {{lk|Akademickie książki z fizyki}} lub {{lk|Akademickie książki z matematyki}}. Również przy tym {{Parametr|typ}} szablon wstawia kolejno jednostkę do kategorii, np.: {{lk|Kompletne książki z fizyki}} i {{lk|Kompletne książki z matematyki}}. Gdy z jednych z parametrów nienazwanych szablonów, oprócz pierwszego, jest, np.: {{Parametr|język|indoeuropejskie}}, to szablon stronę nie tylko dodaje do kategorii {{lk|Języki}}, pod warunkiem, jeżeli, któreś z parametrów numerowanych, oprócz pierwszego jest {{lk|Języki}}, ale również do kategorii {{lk|Języki indoeuropejskie}}, na podstawie tego. Gdy mamy parametr, np.: {{Parametr|rodzaj|Edukacja}}, to szablon dodaje tą stronę do stron w podkategorii kategorii {{lk|Inne kategorie książek}}, czyli tutaj {{lk|Edukacja}}. Gdy parametr {{Code|junior}} jest niepusty, czyli: {{Parametr|junior|Owoce}}, wtedy szablon dodaje stronę do kategorii w przestrzeni nazw {{lk2|Wikijunior}}, tutaj w kategorii {{lk|Wikijunior:Owoce}}. Szablon dodaje do jednych z podkategorii kategorii {{lk|Spis alfabetyczny}}, przy znaku {{Code|-}}, a przy znaku {{Code|+}}, dodaje również do podkategorii kategorii {{lk|Polecane książki/Spis alfabetyczny}}. Parametry {{Parametr|rodzaj}} i {{Parametr|poziom}}, przyjmowano wcześniej, że to tam jest nazwa kategorii, a jeżeli te parametr będą zawierały kolejno zmienną oddzielone kategorie średnikami, to algorytm szablonu {{s|Status}} analizuje dla każdej z tych kategorii na podstawie tych podanych zmiennych. Szablon dla jakiegoś znaku dodaje stronę do kategorii {{lk|Wszystkie książki}}. Gdy strona należy do kategorii {{Parametr|rodzaj|{{lk|Wikizeszyty}}}}, to ten szablon umieszczamy również w podstronach podręcznika wikizeszytu, wtedy w tych artykułach (przy użyciu dodatkowego parametru), będące podstronami podręcznika, szablon dodaje stronę do kategorii, jak dla strony głównej podręcznika, oprócz kategorii: {{lk|Wszystkie książki}}, podręczników według czegoś i spisów alfabetycznych oraz ich odpowiedników polecanych kategorii, jeżeli użyjemy parametry {{Parametr|artykuł|tak}}, a jeżeli go nie użyjemy, to dla strony głównej podręcznika. Gdy użyjemy zmiennej {{Parametr|archiwalna|tak}} na stronie, to szablon umieszcza ją w kategorii {{lk|Archiwalne}}. Gdy szablon umieścimy w przestrzeni nazw {{Np|User|link=tak}} lub {{lr2|Brudnopis}}, w tam podręcznikach i artykułach - jednostkach, przy użyciu tego szablonu, to on umieszcza stronę w kategorii kolejno w: {{lk|Wszystkie książki użytkowników}} lub {{lk|Wszystkie książki w brudnopisie projektu}}. Gdy jeden z numerowanych zmiennych kategorii ma przedrostek {{Code|Książka:}} w wywołaniu, wtedy książka jest przydzielana do jednych z kategorii niepolecanych, która należy do kategorii {{lk|Kategorie książek}}, np.: {{Parametr|2|{{lk|Książka:Książka kucharska}}}} (wtedy szablon przydziela stronę do kategorii {{lk|Książka:Książka kucharska}}), wtedy nazwa sortowania jest równa spacji, a gdy dodatkowo dodamy parametr {{Parametr|książka}}, wtedy nazwa sortowania jest nierówna spacji i jest niepusta. Gdy kategoria książkowa nie jest podana, gdy podamy {{Parametr|książka|tak}}, to nazwa sortowania nie jest pusta i nie jest równa spacji, dla kategorii książkowej, a gdy go nie podamy, to nazwa sortowania jest równa spacji, to szablon generuje kategorię książkową, z tą nazwą sortowania, dla tego podręcznika, jeśli istnieje, tzn.: jeśli nazwa książki jest "{{lg|Książka kucharska}}", to ten podręcznik jest przydzielany do kategorii "{{lk|Książka:Książka kucharska}}". == Użycie szablonu do zgłaszania interwiki w iddentyfikatorze == Interwiki w identyfikatorze zgłaszane przez szablon są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablon obsługuje interwiki projektów{{dk}} * {{NAZWASERWISU|link=tak|klucz projektu=pl:w}} - polska '''Wikiencyklopedia''', * {{NAZWASERWISU|link=tak|klucz projektu=en:b}} - angielskie '''Wikiksiążki''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:s}} - polskie '''Wikiźródła''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:q}} - polskie '''Wicytaty''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:wikt}} - polski '''Wikisłownik''', * {{NAZWASERWISU|link=tak|klucz projektu=en:v}} - angielski '''Wikiuniwersytet''', * {{NAZWASERWISU|link=tak|klucz projektu=pl:n}} - polskie '''Wikiwiadomości''', * {{NAZWASERWISU|link=tak|klucz projektu=d}} - angielskojęzyczne '''Wikidane'''. == Opis parametrów == {{OverflowWiersz|<!-- -->{{Tabelka|klasa=wikitable|styl=white-space:nowrap;margin-top:0.5em;margin-bottom:0.5em|<!-- -->{{Wiersz|<!-- -->{{Komórka|nagłówek=tak|Użycie}}<!-- -->{{Komórka|nagłówek=tak|Szablon dodaje książkę do:}}<!-- -->{{Komórka|nagłówek=tak|Odpowiedniki w {{lk2|Polecane książki}}:}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|100%}}{{•}} {{s|status|-100%|...}}{{•}} {{s|status|+100%|...}}}}<!-- -->{{Komórka|{{lk|Kompletne książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Kompletne książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|75%}}{{•}} {{s|status|-75%|...}}{{•}} {{s|status|+75%|...}}}}<!-- -->{{Komórka|{{lk|Książki na ukończeniu}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki na ukończeniu}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|50%}}{{•}} {{s|status|-50%|...}}{{•}} {{s|status|+50%|...}}}}<!-- -->{{Komórka|{{lk|Książki wymagające dopracowania}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Książki wymagające dopracowania}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|25%}}{{•}} {{s|status|-25%|...}}{{•}} {{s|status|+25%|...}}}}<!-- -->{{Komórka|{{lk|Rozpoczęte książki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Rozpoczęte książki}}}}<!-- -->}}<!-- -->{{Wiersz|<!-- -->{{Komórka|{{s|status|0%}}{{•}} {{s|status|-0%|...}}{{•}} {{s|status|+0%|...}}}}<!-- -->{{Komórka|{{lk|Zalążki}}}}<!-- -->{{Komórka|{{lk|Polecane książki/Zalążki}}}}<!-- -->}}<!-- -->}}<!-- -->}} == Parametry == ; Parametry szablonu w wywołaniu podstawowym przy pierwszym parametrze bez znaku * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. ; Parametry szablonu w wywołaniu rozszerzonym w przypadku występowania znaku przy pierwszym parametrze * {{s|Status|jakaś liczba}}, to {{Code|1}}, liczba wskazująca na stopień ukończenia podręcznika, czy strony {{lk|Wikizeszyty|wikizeszytu}}, przy znaku kolejno {{Code|-}} i {{Code|+}} dodaje kategorie do strony o danym ukończenia podręcznika kolejno bez dodawania kategorii {{lk|Polecane książki|polecanych książek}} i z nim, a bez nich, jeśli jest bez znaku, ale wtedy dodaje kategorie tylko o danym ukończeniu podręczniku, * {{Code|2}}, {{Code|3}}, {{Code|...}} - są to kategorie, a szablon umieszcza stronę, do tych kategorii, w podkategorii kategorii {{lk|Podręczniki według portalu}}, czy {{lk|Podręczniki według tematu}}, a gdy znak pierwszego parametru jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, * {{Code|język}} - gdy, któreś z parametrów numerowanych oprócz pierwszego ma wartość {{lk|Języki}}, a parametr ten, np. ma wartość {{Parametr|język|indoeuropejskie}}, to ta strona jest również dodawana do kategorii {{lk|Języki indoeuropejskie}}, * {{Code|typ}} - ciąg jaki ma dodawać do podkategorii kategorii {{lk|Podręczniki według statusu}}, np.: {{lk|Kompletne książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub {{lk|Kompletne książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, i do kategorii: {{lk|Akademickie książki z fizyki}}, gdy: {{Parametr|typ|z fizyki}}, lub do kategorii {{lk|Akademickie książki z matematyki}}, gdy: {{Parametr|typ|z matematyki}}, wtedy gdy {{Parametr|poziom|{{lk|Studia}}}}, * {{Code|poziom}} - ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii {{lk|Polecane książki|polecanych książek}}, np {{Parametr|poziom|Studia}}, to szablon wtedy przydziela stronę do kategorii {{lk|Studia}}, ta zmienna jest korzystana do przydzielania kategorii związane w tym przypadku ze studiami, * {{Code|rodzaj}} - ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach {{lk|Inne kategorie książek}}, * {{Code|junior}} - kategorie oddzielone od siebie średnikami (bez elementu na jego początki: '''Wikijunior:'''), w przestrzeni nazw: {{lk2|Wikijunior}}, a więc przykład: {{lk|Wikijunior:Owoce}}, gdy {{Parametr|junior|Owoce}}, do której jest przydzielony podręcznik, * {{Code|korzeń}} - kategoria, korzenia z nazwą sortowania {{Code|{{Nowiki|*}}}}, w której umieszczona jest strona, * {{Code|główna}} - kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona, * {{Code|książka}} - niepusty, gdy kategoria z prefiksem '''Książka:''' ma być sortowana nie jest względem spacji, w kategorii: {{lk|Kategorie książek}}, * {{Code|artykuł}} - z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników, * {{Code|archiwalna}} - gdy niepusty, to szablon w przestrzeniach nazw: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, w tam użytego w podręcznikach i artykułach (jeśli {{lk|Wikizeszyty}}) - jednostki, umieszcza je w kategorii {{lk|Archiwalne}}, * {{Code|id}} - gdy równe {{Code|stary}}, to jest wyświetlana bezpośrednio na stronie, a gdy równa innej wartości lub jej nie podano, to ikonka statusu jest wyświetlana w prawym górnym rogu strony. == Przykład == ; Poniższe przykłady zostały napisane w wynikach z parametrem {{Parametr|id|stary}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|archiwalna=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika dla dzieci * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|junior{{=}}Owoce|archiwalna{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|junior=Owoce|archiwalna=tak|typ jednostki=podręcznik dla dzieci|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|-100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronie głównej podręcznika * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fale}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Przykład na stronach głównych podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wolna przedsiębiorczość}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|-25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|-25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na podartykułach podręcznika, gdy szablon wywołano z parametrem {{Parametr|rodzaj|{{lk|Wikizeszyty}}}} * {{s|Status|+25%|Przedsiębiorczość|poziom{{=}}Liceum;Technikum|rodzaj{{=}}Wikizeszyty;Wikizeszyt geograficzny|artykuł{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+25%|id=stary|Przedsiębiorczość|poziom=Liceum;Technikum|rodzaj=Wikizeszyty;Wikizeszyt geograficzny|artykuł=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Wikizeszyt geograficzny/Geografia Europy}}}} ---- ; Przykład na stronie głównej podręcznika w przestrzeni nazw {{Np|User|link=tak}} * {{s|Status|+100%|Historia|Geografia|Przyroda|Astronomia i fizyka|typ{{=}}z fizyki|poziom{{=}}Studia|rodzaj{{=}}Edukacja|korzeń{{=}}Kody źródłowe|główna{{=}}Informatyka}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Historia|Geografia|Przyroda|Astronomia i fizyka|typ=z fizyki|poziom=Studia|rodzaj=Edukacja|korzeń=Kody źródłowe|główna=Informatyka|typ jednostki=jednostka użytkownika|nazwa przestrzeni nazw=User|nazwa jednostki=User/Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|Książka:Książka kucharska|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|Książka:Książka kucharska|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mnemoniczna Technika Studiowania}}}} ---- ; Kategoria książkowa - przykład pierwszy * {{s|Status|+100%|id{{=}}stary|książka{{=}}}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} ; Kategoria książkowa - przykład drugi * {{s|Status|+100%|id{{=}}stary|książka{{=}}tak}} ; Wynik {{OpakujKategorieZeSortowaniem|{{Status|+100%|id=stary|książka=tak|typ jednostki=podręcznik|nazwa przestrzeni nazw=(main)|nazwa jednostki=Książka kucharska}}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Liczba wskazująca na stopień ukończenia podręcznika, czy strony wikizeszytu.", "type": "number", "required": true }, "2": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "3": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "4": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "5": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "6": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "7": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "8": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "9": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "10": { "description": "Jest to kategoria, a szablon umieszcza stronę, do tej kategorii, jako podkategorie kategorii: \"Podręczniki według portalu\", czy \"Podręczniki według tematu\", a gdy znak jest dodatni, to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "wiki-page-name" }, "poziom": { "description": "Ciąg kategorii oddzielone średnikami, dla poziomów nauczania w szkolnictwie polskim, a gdy znak jest dodatni to również w odpowiednikach podkategorii kategorii polecanych książek.", "type": "string" }, "rodzaj": { "description": "Ciąg kategorii oddzielone średnikami, gdzie stronę ma umieścić w kategoriach Kategorie książkowe.", "type": "string" }, "junior": { "description": "Kategoria, w przestrzeni nazw: Kategoria:Wikijunior, a więc przykład: Wikijunior:Owoce, gdy | junior = Owoce, do której jest przydzielony podręcznik.", "type": "wiki-page-name" }, "korzeń": { "description": "Kategoria, korzenia z nazwą sortowania *, w której umieszczona jest strona.", "type": "wiki-page-name" }, "główna": { "description": "Kategoria, z nazwą sortowania równej spacji, w której jest umieszczona strona.", "type": "wiki-page-name" }, "typ": { "description": "Ciąg jaki ma dodawać do podkategorii kategorii Podręczniki według statusu, np.: Kompletne książki z fizyki, gdy: | typ = z fizyki, lub Kompletne książki z matematyki, gdy: | typ = z matematyki, i do kategorii: \"Akademickie książki z fizyki\", gdy: | typ = z fizyki, lub do kategorii \"Akademickie książki z matematyki\", gdy: | typ = z matematyki, wtedy gdy | poziom = Studia.", "type": "line" }, "archiwalna": { "description": "Gdy niepusty, to szablon w przestrzeni nazw Wikipedysta, w tam użytego w podręcznikach i artykułach - jednostki, umieszcza w kategorii Archiwalne, jednostki.", "type": "string" }, "artykuł": { "description": "Z tym parametrem szablon może być wstawiony na strony podartykułów, nie tylko do stron głównych, podręczników.", "type": "string" } }, "paramOrder": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "poziom", "typ", "rodzaj", "junior", "korzeń", "główna", "artykuł", "archiwalna" ], "description": "Szablon {{Status}} dla podręcznika, i dla stron, jakimi są Wikizeszyty, to on przydziela podręcznik i jego artykuły - w tym ostatnim (jeżeli w nich napisano to wywołanie), do odpowiednich kategorii." } </templatedata> == Zobacz też == {{Status/opis/Zobacz też}} {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII --> {{Kategorie | Szablony umieszczane na stronach głównych, książek | Szablony stronicowe woluminów }} </includeonly> g2wftgz6zayjl1mnezj6f64flyzbv88 Szablon:Wikipedia2 10 31216 552132 471761 2026-08-17T11:21:23Z Persino 2851 552132 wikitext text/x-wiki <includeonly>{{#if:{{{ref|}}}||{{Div|styl=float: left;|{{Plik|plik=Wikipedia-logo-v2.svg|rozmiar=20px|opis=Wikipedia}}}} :}}Zobacz w {{lo|_|Wikipedii|k=w}} hasł{{#if:{{#ifexpr:{{#invoke:Ramka|IleJestTakichNieodpowiednikowychZmiennych|zmienna=strona|odpowiednik=tak}}>1|tak}}|a{{Br}}|o}} {{#invoke:Ramka|Powtarzaj|różne=tak|wytnij=tak|parametry=strona=tak;dopełniacz=tak|dodatkowe=dopełniacz|{{((}}#ifeq:{{((}}_{{))}}{{!}}{{#invoke:Ramka|MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=strona|odpowiednik=tak}}{{!}}{{!}}{{((}}Br{{))}}{{))}}{{!((}}w:{{(((}}{{((}}_{{))}}{{!}}{{(((}}strona{{((}}__{{))}}{{)))}}{{)))}}{{!}}{{(((}}dopełniacz{{((}}__{{))}}{{!}}{{((}}PAGENAME{{))}}{{)))}}{{))!}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> sx8deukgp0qc1bf6zeiod0i1hweyphu Szablon:DNU/instrukcja 10 33025 552075 524690 2026-08-17T06:15:58Z Persino 2851 552075 wikitext text/x-wiki <includeonly>'''Niedokończone zgłoszenie:''' {{#ifexist:{{DNU/prefix|{{{1}}}}}/{{{podstrona}}}|| <!-- Podstrona zgłoszenia nie istnieje --> # Utwórz {{lo|{{DNU/prefix|{{{1}}}}}/{{{podstrona}}}|podstronę zgłoszenia}}, wstawiając na nią: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|<nowiki> ===</nowiki> {{Nowiki|[[:{{FULLPAGENAME}}]]}} <nowiki>===</nowiki>{{Br}}<nowiki> :</nowiki> {{s|lnDNU|{{FULLPAGENAME}}}}{{Br}}<nowiki> Uzasadnienie, czemu ta strona nie nadaje się do Wikibooks. &#126;&#126;&#126;&#126;</nowiki>}}}} }} # Na górze sekcji {{lz|s={{DNU/prefix|{{{1}}}}}|c=action=edit&section=1|n=Poczekalni}}, poniżej linii ''<nowiki><!-- Nowe zgłoszenia wstawiaj poniżej tej linii --></nowiki>'', wstaw: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|{{DNU/prefix|{{{1|}}}}}/{{{podstrona}}}}}}}}}{{#ifeq:{{{podano podstronę|}}}|nie| <!-- W szablonie {{DNU}} nie podano podstrony --> # W haśle zamień wywołanie tego szablonu na: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|DNU|{{{1}}}|podstrona{{=}}{{Czas|Y:m:d}}:{{FULLPAGENAME}}}}}}}}}} # Powiadom {{Span|klasa=plainlinks|{{lz|s={{SUBJECTPAGENAME}}|c=action=history|n=autora}}}} na jego stronie dyskusji: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|DNU/info|{{Jeśli niepuste|{{Dopasuj|ciąg={{{podstrona}}}|wzór=^%d+:%d+:%d+:(.*)$}}|{{FULLPAGENAME}}}}|{{Jeśli niepuste|{{Dopasuj|ciąg={{{podstrona}}}|wzór=^(%d+:%d+:%d+):}}|{{Czas|Y:m:d}}}}|artykuł|tak}}}}}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|DNU}}, zobacz stronę {{lr|Poczekalnia}}.}}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> pr3slwqsa24d6ij6t43zltd5bmay6xp 552078 552075 2026-08-17T06:29:26Z Persino 2851 552078 wikitext text/x-wiki <includeonly>'''Niedokończone zgłoszenie:''' {{#ifexist:{{DNU/prefix|{{{1}}}}}/{{{podstrona}}}|| <!-- Podstrona zgłoszenia nie istnieje --> # Utwórz {{lo|{{DNU/prefix|{{{1}}}}}/{{{podstrona}}}|podstronę zgłoszenia}}, wstawiając na nią: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|<nowiki> ===</nowiki> {{Nowiki|[[:{{FULLPAGENAME}}]]}} <nowiki>===</nowiki>{{Br}}<nowiki> :</nowiki> {{s|lnDNU|{{FULLPAGENAME}}}}{{Br}}<nowiki> Uzasadnienie, czemu ta strona nie nadaje się do Wikibooks. &#126;&#126;&#126;&#126;</nowiki>}}}} }} # Na górze sekcji {{lz|s={{DNU/prefix|{{{1}}}}}|c=action=edit&section=1|n=Poczekalni}}, poniżej linii ''<nowiki><!-- Nowe zgłoszenia wstawiaj poniżej tej linii --></nowiki>'', wstaw: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|{{DNU/prefix|{{{1|}}}}}/{{{podstrona}}}}}}}}}{{#ifeq:{{{podano podstronę|}}}|nie| <!-- W szablonie {{DNU}} nie podano podstrony --> # W haśle zamień wywołanie tego szablonu na: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|DNU|{{{1}}}|podstrona{{=}}{{Czas|Y:m:d}}:{{FULLPAGENAME}}}}}}}}}} # Powiadom {{Span|klasa=plainlinks|{{lz|s={{SUBJECTPAGENAME}}|c=action=history|n=autora}}}} na jego stronie dyskusji: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|DNU/info|{{Jeśli niepuste|{{Dopasuj|ciąg={{{podstrona}}}|wzór=^%d+:%d+:%d+:(.*)$}}|{{FULLPAGENAME}}}}|{{Jeśli niepuste|{{Dopasuj|ciąg={{{podstrona}}}|wzór=^(%d+:%d+:%d+):}}|{{Czas|Y:m:d}}}}|artykuł|tak}}}}}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|DNU}}, zobacz stronę {{lr|Poczekalnia}}. * Szablon wyświetla się, gdy jest niedokończone zgłoszenie szablonu {{s|DNU}}, na danej stronie, wywołanych przez szablon {{s|DNU/Sprawdzenia}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 7sig7xoej5od9hcp2a3yhkzx3osomgk 552084 552078 2026-08-17T06:50:57Z Persino 2851 552084 wikitext text/x-wiki <includeonly>'''Niedokończone zgłoszenie:''' {{#ifexist:{{DNU/prefix|{{{1}}}}}/{{{podstrona}}}|| <!-- Podstrona zgłoszenia nie istnieje --> # Utwórz {{lo|{{DNU/prefix|{{{1}}}}}/{{{podstrona}}}|podstronę zgłoszenia}}, wstawiając na nią: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|<nowiki> ===</nowiki> {{Nowiki|[[:{{FULLPAGENAME}}]]}} <nowiki>===</nowiki>{{Br}}<nowiki> :</nowiki> {{s|lnDNU|{{FULLPAGENAME}}}}{{Br}}<nowiki> Uzasadnienie, czemu ta strona nie nadaje się do Wikibooks. &#126;&#126;&#126;&#126;</nowiki>}}}} }} # Na górze sekcji {{lz|s={{DNU/prefix|{{{1}}}}}|c=action=edit&section=1|n=Poczekalni}}, poniżej linii ''<nowiki><!-- Nowe zgłoszenia wstawiaj poniżej tej linii --></nowiki>'', wstaw: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|{{DNU/prefix|{{{1|}}}}}/{{{podstrona}}}}}}}}}{{#ifeq:{{{podano podstronę|}}}|nie| <!-- W szablonie {{DNU}} nie podano podstrony --> # W haśle zamień wywołanie tego szablonu na: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|DNU|{{{1}}}|podstrona{{=}}{{Czas|Y:m:d}}:{{FULLPAGENAME}}}}}}}}}} # Powiadom {{Span|klasa=plainlinks|{{lz|s={{SUBJECTPAGENAME}}|c=action=history|n=autora}}}} na jego stronie dyskusji: #: {{Div|styl=background-color:#fff; padding:1em; border:1px dashed #2F6FAB;|{{Tt|{{s|DNU/info|{{Jeśli niepuste|{{Dopasuj|ciąg={{{podstrona}}}|wzór=^%d+:%d+:%d+:(.*)$}}|{{FULLPAGENAME}}}}|{{Jeśli niepuste|{{Dopasuj|ciąg={{{podstrona}}}|wzór=^(%d+:%d+:%d+):}}|{{Czas|Y:m:d}}}}|artykuł|tak}}}}}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|DNU}}, zobacz stronę {{lr|Poczekalnia}}. * Szablon wyświetla się, gdy jest niedokończone zgłoszenie szablonu {{s|DNU}}, na danej stronie, wywołanych przez szablon: {{s|DNU/Sprawdzenia}}, a ten przez: {{s|DNU}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> e576k0qfurn4n9gwig4nb3bm1fzt5ws Szablon:DNU/prefix 10 33026 552076 505646 2026-08-17T06:16:32Z Persino 2851 552076 wikitext text/x-wiki <includeonly>{{ns:Project}}:Poczekalnia/{{#switch:{{{1}}} | naprawa = naprawa | prowokacja = prowokacje | artykuł = artykuły | technikalia = kwestie techniczne | #default = nazwa podstrony w poczekalni }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{S|DNU}}, zobacz stronę {{LinkProjekt|Poczekalnia}}.}}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> o79prp069hkq2dtxnmj51v9020izoxi 552077 552076 2026-08-17T06:25:25Z Persino 2851 552077 wikitext text/x-wiki <includeonly>{{ns:Project}}:Poczekalnia/{{#switch:{{{1}}} | naprawa = naprawa | prowokacja = prowokacje | artykuł = artykuły | technikalia = kwestie techniczne | #default = nazwa podstrony w poczekalnii }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{S|DNU}}, zobacz stronę {{LinkProjekt|Poczekalnia}}. * Szablon wyświetla: '''pełną nazwę strony''', gdzie są zrzucone wszystkie błędy takiego typu. ; Dostępne typy: * {{Code|naprawa}} - zgłoszenia dotyczące jednostek nietechnicznych zgłoszonych do naprawy, ewentualnie, jeżeli nie da się tego dokonać, to do usunięcia, * {{Code|prowokacja}} - zgłoszenia dotyczące jedostek będące efektem prowokacji, które wskazują stronę do usunięcia, * {{Code|artykuł}} - zgłoszenia, co do usunięcia, tej jednostki, artykułu, czy nawet podręcznika, * {{Code|technikalia}} - zgłoszenia, co do jednostek technicznych, jak np. szablony i moduły, co do których wykryto nieprawidłowości, które wskazują stronę do usunięcia lub naprawienia. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> j9mcq454lkl9ibv5j5jgdude97z0efg Szablon:Uprawa - roślina infobox/opis 10 44372 552144 550961 2026-08-17T11:54:20Z Persino 2851 /* Parametry bez wartości */ 552144 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> {{LuaSurowySzablonRozwiń|strona={{Szablon nie opis|pełna=tak}}|bez dodatkowych sprawdzeń=tak}} == Użycie == Szablon służący do opisu roślin w kwestii ich uprawy, wykorzystywany też w podręczniku {{lg|Ekoogrodnictwo}}. {{Uprawa - roślina infobox | nazwa = [[w:brokuł|Brokuł]] | obrazek = Broccoli2.jpg | gleba = średnie | ciepło = umiarkowane, optimum 15-18°C | światło = mało wrażliwy na niedobór światła | woda = bardzo wymagający | łacina = ''Brassica oleracea'' var. ''italica'' | wikispecies = Brassica oleracea | commons = Category:Brassica oleracea | nazwy = brokuł włoski, kapusta szparagowa }} == Parametry bez wartości == {{Pre| {{s|Uprawa - roślina infobox | nazwa {{=}} | obrazek {{=}} | opis {{=}} | gleba {{=}} | ciepło {{=}} | wytrzymałość {{=}} | wrażliwość {{=}} | światło {{=}} | woda {{=}} | systematyka {{=}} | domena {{=}} | królestwo {{=}} | podkrólestwo {{=}} | typ {{=}} | nadgromada {{=}} | gromada {{=}} | podgromada {{=}} | nadklasa {{=}} | klasa {{=}} | nadrząd {{=}} | rząd {{=}} | rodzina {{=}} | rodzaj {{=}} | nomenklatura {{=}} | łacina {{=}} | nazwy {{=}} | wikipedia {{=}} _wikipedia {{=}} | wikipedia 1 {{=}} _wikipedia 1 {{=}} | wikipedia 2 {{=}} _wikipedia 2 {{=}} ... | wikipedia N {{=}} _wikipedia N {{=}} | wikibooks {{=}} _wikibooks {{=}} | wikibooks 1 {{=}} _wikibooks 1 {{=}} | wikibooks 2 {{=}} _wikibooks 2 {{=}} ... | wikibooks N {{=}} _wikibooks N {{=}} | wikisłownik {{=}} _wikisłownik {{=}} | wikisłownik 1 {{=}} _wikisłownik 1 {{=}} | wikisłownik 2 {{=}} _wikisłownik 2 {{=}} ... | wikisłownik N {{=}} _wikisłownik N {{=}} | commons {{=}} _commons {{=}} | commons 1 {{=}} _commons 1 {{=}} | commons 2 {{=}} _commons 2 {{=}} ... | commons N {{=}} _commons N {{=}} }} }} == Opis parametrów == {{Pre|{{s|Uprawa - roślina infobox | nazwa {{=}} nazwa, albo link, do artykułu o roślinie | obrazek {{=}} obrazek rośliny | gleba {{=}} wymagania glebowe | ciepło {{=}} wymagania cieplne | wrażliwość {{=}} wrażliwość na temperaturę | światło {{=}} wymagania świetlne | woda {{=}} wymagania wodne | łacina {{=}} nazwa łacińska rośliny | wikispecies {{=}} nazwa strony na wikispecies | commons {{=}} nazwa galerii zdięć na commons | nazwy {{=}} nazwa polska rośliny }}}} == Przykład == {{Pre|{{s|Uprawa - roślina infobox | nazwa {{=}} {{L|w:brokuł|Brokuł}} | obrazek {{=}} Broccoli2.jpg | gleba {{=}} średnie | ciepło {{=}} umiarkowane, optimum 15-18°C | światło {{=}} mało wrażliwy na niedobór światła | woda {{=}} bardzo wymagający | łacina {{=}} <nowiki>''Brassica oleracea'' var. ''italica''</nowiki> | wikispecies {{=}} Brassica oleracea | commons {{=}} Brassica oleracea | nazwy {{=}} brokuł włoski, kapusta szparagowa }}}} == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Infoboksy – uprawa}} </includeonly> lhlcv4wkg2ua2vm9wr9l7termk29fnt Szablon:LinkObiekt/typ 10 45031 552052 544310 2026-08-17T05:22:41Z Persino 2851 552052 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie nazwę linku. ; Typ elememntu - parametr{{dk}} * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon {{s|LinkObiekt}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 9t28fpnzvqsuf02gz03dqpgxqt1563i 552053 552052 2026-08-17T05:25:47Z Persino 2851 552053 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon {{s|LinkObiekt}}, możliwe wartości poniżej. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie nazwę linku. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 5wd7r3adgqrix898oi3nrpwjni4ntif 552054 552053 2026-08-17T05:26:58Z Persino 2851 552054 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, , możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie nazwę linku. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> gnmj0syza17zb9sp0lgwv1t3f1bmous 552055 552054 2026-08-17T05:32:20Z Persino 2851 552055 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, , możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, przed numeracją, w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie nazwę linku. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 2r0sdygvx2bnmjk8ygbv8mtizycjuez 552059 552055 2026-08-17T05:53:20Z Persino 2851 552059 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, , możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, przed numeracją, w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie daje nazwę linku. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> mksc0umz6ak7zszwmmutayq4a8yzu1s 552061 552059 2026-08-17T05:55:41Z Persino 2851 552061 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, , możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, przed numeracją, w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie daje nazwę linku, tuta dla szablonu: {{s|LinkTwierdzenie}}, jest '''Twierdzenie''', a dla: {{s|LinkObiekt}}, jest: '''Obiekt'''. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> kxmpl39oi8ybpfbjauxw0nyd0mlc6dx 552066 552061 2026-08-17T06:04:19Z Persino 2851 552066 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, , możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon: {{s|LinkObiekt}}, pośrednio, lub bezpośrednio, tutaj dla szablonu: {{s|LinkTwierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|LinkObiekt}}, jest: '''Obiekt''', czyli dla jakiego szablonu linków, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, przed numeracją, w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie daje nazwę linku, tuta dla szablonu: {{s|LinkTwierdzenie}}, jest '''Twierdzenie''', a dla: {{s|LinkObiekt}}, jest: '''Obiekt'''. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 8jvxxn09w2i9al5q70x0aldbyf6le4x 552068 552066 2026-08-17T06:05:40Z Persino 2851 552068 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, , możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon: {{s|LinkObiekt}}, pośrednio, lub bezpośrednio, tutaj dla szablonu: {{s|LinkTwierdzenie}}, jest: '''Twierdzenie''', a dla szablonu bezpośredniego jest: '''Obiekt''', czyli dla jakiego szablonu linków, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, przed numeracją, w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie daje nazwę linku, tuta dla szablonu: {{s|LinkTwierdzenie}}, jest '''Twierdzenie''', a dla: {{s|LinkObiekt}}, jest: '''Obiekt'''. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> jkbf374ienndi2qdh7lrufl6ntqqv0k 552071 552068 2026-08-17T06:07:15Z Persino 2851 552071 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|wzór=wzór|rysunek=rysunek|zobaczteż=zobaczteż|patrz=patrz|twierdzenie=twierdzenie|hipoteza=hipoteza|lemat=lemat|kryterium=kryterium|dowód=dowód|postulat=postulat|postulaty=postulaty|określenie=określenie|zadanie=zadanie|praktyka=praktyka|procedura=procedura|schemat=schemat|obiekt|#default=obiekt}} | skrót={{#switch:{{{typ|obiekt}}}|wzór=|rysunek=Rys.|zobaczteż=Zobacz też:|patrz=Patrz:|twierdzenie=Twier.|hipoteza=Hip.|lemat=Lem.|kryterium=Kryt.|dowód=Dow.|postulat=Pos.|postulaty=Pos.'y|określenie=Def.|zadanie=Zad.|praktyka=Ćwicz.|procedura=Proc.|schemat=Schem.|obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|obiekt}}}|wzór=Wzoru|rysunek=Rysunku|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenia|hipoteza=Hipotezy|lemat=Lematu|kryterium=Kryterium|dowód=Dowodu|postulat=Postulatu|postulaty=Postulatów|określenie=Określenia|zadanie=Zadania|praktyka=Praktyki|procedura=Procedury|schemat=Schematu|obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|obiekt}}}|wzór=Wzór|rysunek=Rysunek|zobaczteż=ZobaczTeż|patrz=Patrz|twierdzenie=Twierdzenie|hipoteza=Hipoteza|lemat=Lemat|kryterium=Kryterium|dowód=Dowód|postulat=Postulat|postulaty=Postulaty|określenie=Określenie|zadanie=Zadanie|praktyka=Praktyka|procedura=Procedura|schemat=Schemat|obiekt|#default=Obiekt}} |#default=(błąd)}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|LinkObiekt}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, , możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie linków ma ma być wywoływany szablon: {{s|LinkObiekt}}, pośrednio, lub bezpośrednio, tutaj dla szablonu: {{s|LinkTwierdzenie}}, jest: '''Twierdzenie''', a dla szablonu bezpośredniego jest: '''Obiekt''', czyli dla jakiego szablonu linków, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w adresie linku, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, wraz numerkiem, jaki pojawia się po uruchomieniu szablonu linków, przed numeracją, w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - Nazwa po wyrazie: '''Link''', po którym następuje ta nazwa, co w rezultacie daje nazwę linku, tuta dla szablonu: {{s|LinkTwierdzenie}}, jest '''Twierdzenie''', a dla: {{s|LinkObiekt}}, jest: '''Obiekt'''. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 03qupct6vvlr0tp4nteo5ez3620l569 Szablon:Wypowiedzenie/rodzaj 10 45033 552056 544309 2026-08-17T05:45:46Z Persino 2851 552056 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim jest np. szablon: {{s|Twierdzenie}}, tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - Nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego,yutaj dla szablonu, np.: {{s|Twierdzenie}}, jest '''Twierdzzenie''', a dla: {{s|Wypowiedzenie}}, jest '''Wypowiedzenie'''. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> a0somw68dptzaoi2atb8b8gvr51nsei 552057 552056 2026-08-17T05:48:49Z Persino 2851 552057 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - Nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest '''Twierdzzenie''', a dla: {{s|Wypowiedzenie}}, jest '''Wypowiedzenie'''. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> f4abw550pe6raupqmczchj4xziqcaam 552058 552057 2026-08-17T05:51:21Z Persino 2851 552058 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest '''Twierdzzenie''', a dla: {{s|Wypowiedzenie}}, jest '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 57aqq6e07siffjtn9cdjizmafe1y0pk 552060 552058 2026-08-17T05:54:25Z Persino 2851 552060 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> pdztqamrncb2jau3lqk1gyve36ffjbe 552062 552060 2026-08-17T05:57:02Z Persino 2851 552062 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon {{s|LinkObiekt}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 35jegwzk326niyzk2n20g6rx6o3qh75 552063 552062 2026-08-17T06:00:34Z Persino 2851 552063 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon {{s|LinkObiekt}}, tutaj dla szablonu: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Obiekt''', czyli dla jakiego szablonu wypowiedzenie, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> mfbiq9g7nshiwj5aptmyaayniqlxm95 552064 552063 2026-08-17T06:03:10Z Persino 2851 552064 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon: {{s|Wypowiedzzenia}}, pośrednio, lub bezpośrednio, tutaj dla szablonu: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Obiekt''', czyli dla jakiego szablonu wypowiedzenie, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 202of52ugrwg8ttay7m16nd1ziv6w3u 552065 552064 2026-08-17T06:04:08Z Persino 2851 552065 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon: {{s|Wypowiedzenia}}, pośrednio, lub bezpośrednio, tutaj dla szablonu: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Obiekt''', czyli dla jakiego szablonu wypowiedzenie, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> j7tfru04ateuw32jxkitkpgab6iievi 552067 552065 2026-08-17T06:04:55Z Persino 2851 552067 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon: {{s|Wypowiedzenia}}, pośrednio, lub bezpośrednio, tutaj dla szablonu: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla szablonu bezpośredniego jest: '''Obiekt''', czyli dla jakiego szablonu wypowiedzenie, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> mxjwst7su2kqb08wgiucd8vg32xaqz9 552069 552067 2026-08-17T06:06:14Z Persino 2851 552069 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon: {{s|Wypowiedzenie}}, pośrednio, lub bezpośrednio, tutaj dla szablonu: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla szablonu bezpośredniego jest: '''Obiekt''', czyli dla jakiego szablonu wypowiedzenie, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 7kfh53r0qv26qx2wvn28eulgs7cvt41 552070 552069 2026-08-17T06:06:42Z Persino 2851 552070 wikitext text/x-wiki <includeonly>{{#switch:{{{cecha|}}} | id = {{#switch:{{{typ|obiekt}}}|Twierdzenie=twierdzenie|Hipoteza=hipoteza|Lemat=lemat|Kryterium=kryterium|Dowód=dowód|Postulat=postulat|Postulaty=postulaty|Określenie=określenie|Zadanie=zadanie|Praktyka=praktyka|Procedura=procedura|Schemat=schemat|Obiekt|#default=obiekt}} | skrót = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twier.|Hipoteza=Hip.|Lemat=Lem.|Kryterium=Kryt.|Dowód=Dow.|Postulat=Pos.|Postulaty=Pos.'y|Określenie=Def.|Zadanie=Zad.|Praktyka=Ćwicz.|Procedura=Proc.|Schemat=Schem.|Obiekt|#default=Obj.}} | funkcja = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenia|Hipoteza=Hipotezy|Lemat=Lematu|Kryterium=Kryterium|Dowód=Dowodu|Postulat=Postulatu|Postulaty=Postulatów|Określenie=Określenia|Zadanie=Zadania|Praktyka=Praktyki|Procedura=Procedury|Schemat=Schematu|Obiekt|#default=Obiektu}} | nazwa = {{#switch:{{{typ|Obiekt}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Określenie|Zadanie=Zadanie|Praktyka=Praktyka|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Obiekt}} | rodzaj = {{#switch:{{{typ|Wypowiedzenie}}}|Twierdzenie=Twierdzenie|Hipoteza=Hipoteza|Lemat=Lemat|Kryterium=Kryterium|Dowód=Dowód|Postulat=Postulat|Postulaty=Postulaty|Określenie=Definicja|Zadanie=Zadanie|Praktyka=Ćwiczenie|Procedura=Procedura|Schemat=Schemat|Obiekt|#default=Wypowiedzenie}} | #default = (błąd) }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{s|Wypowiedzenie}}. ; Typ elememntu - parametr{{dk}} * {{Code|cecha}} - parametry cechy, możliwe wartości poniżej, w innym rozdziale, * {{Code|typ}} - w jakim szablonie '''wypowiedzenia''' ma ma być wywoływany szablon: {{s|Wypowiedzenie}}, pośrednio, lub bezpośrednio, tutaj dla szablonu: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla szablonu bezpośredniego jest: '''Obiekt''', czyli dla jakiego szablonu wypowiedzenia, ma być zwrócona cecha, wskazana przez: {{Code|cecha}}. ; Wartości parametru {{Code|cecha}} funkcji{{dk}} * {{Code|id}} - przedrostek nagłówka w nazwie identyfikatora '''id''', do którego mogą linkować linki, po którym następuje dolny myślnik, a po nim jest numer obiektu, do którego wskazuje link, * {{Code|skrót}} - skrót, jaki się pojawia przed numeracją danego obiektu w nawiasie, * {{Code|funkcja}} - dokończenie nazwy funkcji według modułu: {{Code|{{m|StronicowyParser}}}}, po przednazwie '''Nazwa''', * {{Code|nazwa}} - nazwa szablonu wypowiedzenia, jakim np. dla szablonu: {{s|Twierdzenie}}, jest '''Twierdzenie''', a tutaj dla szablonu: {{s|Wypowiedzenie}}, jest: '''Obiekt''', popatrz na stronę: {{s|LinkObiekt/typ}}, * {{Code|rodzaj}} - nazwa szablonu obiektu, jaki się pojawia, w nazwie szablonu matematycznego, tutaj dla szablonu, np.: {{s|Twierdzenie}}, jest: '''Twierdzenie''', a dla: {{s|Wypowiedzenie}}, jest: '''Wypowiedzenie''', w okienku danego szablonu. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 1w98pe0bvh2ceihjkp0tkcj3jgamnu1 Moduł:Nazwy 828 46021 552105 539429 2026-08-17T08:56:52Z Persino 2851 552105 Scribunto text/plain local m={}; local function WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_niekanoniczna) local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_kanonicznych)do if(nazwa_niekanoniczna==mw.ustring.lower(nazwa_niekanoniczna_przestrzeni_nazw))then return mw.site.namespaces[nazwa_kanoniczna_przestrzeni_nazw]; end; end; end; local function UchwytNazwyPrzestrzeniNazw(nazwa_przestrzeni_nazw) local uchwyt_przestrzeni_nazw; local parametry_modul=require("Module:Parametry"); if(parametry_modul.TypeString(nazwa_przestrzeni_nazw))then nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); nazwa_przestrzeni_nazw=mw.ustring.lower(nazwa_przestrzeni_nazw); uchwyt_przestrzeni_nazw=WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_przestrzeni_nazw) or mw.site.namespaces[nazwa_przestrzeni_nazw]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw]; end; if(uchwyt_przestrzeni_nazw)then return uchwyt_przestrzeni_nazw; end; if(parametry_modul.TypeNumber(nazwa_przestrzeni_nazw))then return nil;end; local nazwy_kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna,nazwa_niekanoniczna in pairs(nazwy_kanoniczne_modul.inne_przestrzenie_nazw)do local nazwa_kanoniczna_temp=mw.ustring.lower(nazwa_kanoniczna); local nazwa_niekanoniczna_temp=mw.ustring.lower(nazwa_niekanoniczna); if((nazwa_przestrzeni_nazw==nazwa_kanoniczna_temp)or(nazwa_przestrzeni_nazw==nazwa_niekanoniczna_temp))then local uchwyt={}; uchwyt.name=nazwa_niekanoniczna; uchwyt.canonicalName=nazwa_kanoniczna; local talk=mw.ustring.match(nazwa_kanoniczna_temp,"%s+talk$") and true or false; uchwyt.isTalk=talk; uchwyt.isSubject=not talk; if(not talk)then uchwyt.subject=uchwyt; local uchwyt_talk={}; local nazwa_kanoniczna=nazwa_kanoniczna.." talk"; local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_talk.name=nazwa_niekanoniczna; uchwyt_talk.canonicalName=nazwa_kanoniczna; uchwyt_talk.isTalk=true; uchwyt_talk.isSubject=false; uchwyt_talk.talk=uchwyt_talk; uchwyt_talk.subject=uchwyt; uchwyt.talk=uchwyt_talk; else uchwyt.talk=uchwyt; local uchwyt_subject={}; local nazwa_kanoniczna=mw.ustring.gsub(nazwa_kanoniczna,"%s+talk$",""); local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_subject.name=nazwa_niekanoniczna; uchwyt_subject.canonicalName=nazwa_kanoniczna; uchwyt_subject.isTalk=false; uchwyt_subject.isSubject=true; uchwyt_subject.talk=uchwyt; uchwyt_subject.subject=uchwyt_subject; uchwyt.subject=uchwyt_subject; end; return uchwyt; end; end; return nil; end; local function ZnajdowanieSkojarzonychPrzestrzeniNazw(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 WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); 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 kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_niekanonicznych)do if(uchwyt_przestrzeni_nazw.name==nazwa_niekanoniczna_przestrzeni_nazw)then return nazwa_kanoniczna_przestrzeni_nazw; end; end; return uchwyt_przestrzeni_nazw.canonicalName; else return nil; end; end; local function WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); if(uchwyt_przestrzeni_nazw)then if((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))then return "Projekt"; elseif((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then return "Dyskusja projektu"; end; return uchwyt_przestrzeni_nazw.name; end; return nil; end; local function OperacjeKreskaPoziomaDolna(myslnik,nazwa) local parametry_modul=require("Module:Parametry"); if(myslnik)then nazwa=mw.ustring.gsub(nazwa,"[%s_]+","_"); else nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); end; return mw.getContentLanguage():ucfirst(nazwa); end; local 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.aliasy_znanych_nazw_niekanonicznych)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=UchwytNazwyPrzestrzeniNazw(nazwa_niekanoniczna_nazwy_przestrzeni_nazw); return uchwyt_przestrzeni_nazw; end; end; end; return nil; end; local function DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_nazw2=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw); if(uchwyt_przestrzeni_nazw2)then if(kanoniczna)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); if(kanoniczna_nazwa)then return OperacjeKreskaPoziomaDolna(myslnik,kanoniczna_nazwa); else return nil; end; else local nazwa_niekanoniczna=WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); return OperacjeKreskaPoziomaDolna(myslnik,nazwa_niekanoniczna); end; else return nil; end; end; local function NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_glownej=UchwytNazwyPrzestrzeniNazw(""); return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu); end; local function TranslacjaNieBazowejPrzestrzeniNazw(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=UchwytNazwyPrzestrzeniNazw(tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else return nil; end; else local uchwyt_przestrzeni_nazw=UchwytNazwyPrzestrzeniNazw((nazwa)and nazwa or ""); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(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 DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else if(czy_istnieje)then return nil; else return OperacjeKreskaPoziomaDolna(myslnik,nazwa); end; end; end; end; end; local function TranslacjaNazwyPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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=TranslacjaNieBazowejPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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 NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu); else return TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje); end; else return NazwaPrzestrzeniNazwBazowa(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) ---- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; ---- 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=UchwytNazwyPrzestrzeniNazw(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=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw) if(uchwyt)then return uchwyt_przestrzeni_nazw2;end; if((uchwyt_przestrzeni_nazw2)and(uchwyt_przestrzeni_nazw2.id))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=ZnajdowanieSkojarzonychPrzestrzeniNazw(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_wraz_z_ich_opisem_wedle_danych_stron; local uchwyt=m.Np{["nazwa"]=nazwa, ["dyskusja"]=((dyskusja)and "tak" or ""), ["przedmiotowa"]=((przedmiotowa)and "tak" or ""), ["uchwyt"]="tak", }; if(uchwyt)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(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)"; elseif((uchwyt.canonicalName=="Project")and(nazwij_projektem))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Projekt"; elseif((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Dyskusja projektu"; 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=TranslacjaNazwyPrzestrzeniNazw(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 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 awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie); local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna); local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]); local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt); local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ---- 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="tak",["wynik błędu nietekstowy"]="tak",} if(not wartosc_kanoniczna)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; local wartosc_oczekiwana=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"]=po_polsku,["awaryjnie"]=awaryjnie,["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,}; if(not wartosc_oczekiwana)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; wartosc_oczekiwana=tostring(wartosc_oczekiwana); local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron; 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 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 local pos={"w","Pomoc:Przestrzeń nazw"}; local strona2=pos[2]; local klucz_projektu2=pos[1]; 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 klucz_projektu=pos[1]; kod_jezyka=nil; kod_projektu=nil; return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},}; end; 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.charakterystyczne_przestrzenie_nazw; 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.tablica_lokalne_lingwistyczne_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.podstawowe_przestrzenie_nazw; 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 num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$"); if(num)then local nazwa_kan; if(id)then nazwa_kan=m.Np{["nazwa"]=num,["id"]="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; 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)then return nazwa_kan;end; nazwa=nazwa_kan; 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 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; elseif ((name~="")and (por_prze(name.." talk"))) or((name=="")and(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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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(name); end; else return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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.." talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; if awaryjnie then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)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; 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; 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 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"] or {projekt, projekt.." talk"}; local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"]; local function Zwracanie(pos1,pos2,name,numer) if((po_polsku)and(pos1))then local pos=name and (pos1[name] or {})[numer] or (not name and pos1[numer]); if(pos)then return wyswietlana_nazwa(pos); end; end; local pos=pos2[numer]; return wyswietlana_nazwa(pos); end; if(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)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 por_prze(name.." 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,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(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 ((name~="")and (por_prze(name.." talk"))) or ((name=="")and (por_prze("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 then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then if por_prze("")then return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),}; end; 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(np~="Wikijunior"))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; 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 przypadek=PobierzParametr("przypadek"); ----- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ----- 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_kody_projektu_wraz_z_ich_nazwami_stron; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablica_aliasowe_kody_projektu=wiki_interwiki_modul.tablica_aliasowe_kody_projektu; local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; local aliasy=tablica_aliasowe_kody_projektu[url]; local projekt=nil; local przypadek=parametry_modul.CzyTak(przypadek) and przypadek or nil; for kod,_ in pairs(aliasy)do local __projekt=lista_projektow[kod]; if(parametry_modul.TypeTable(__projekt))then projekt=(przypadek and (__projekt[przypadek] or __projekt["mianownik"]) or nil) or __projekt[1]; else projekt=__projekt; end; 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,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.n)then return tabela_nazw.namespace; else local namespace=tabela_nazw.namespace; namespace=mw.ustring.gsub(namespace,"[%s_]+"," "); tabela_nazw.namespace=namespace; tabela_nazw.n=true; return namespace; end; end; local function NazwyNamespace(namespace,pagename,p,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.n=true; tabela_nazw.pagename=pagename; tabela_nazw.p=p if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then NazwyNamespace("","",true,czy_biezaca_wiki); return ""; end; local namespace= mw.ustring.gsub(title.nsText,"_+"," "); NazwyNamespace(namespace,title.text,false,czy_biezaca_wiki); return namespace; elseif((pelna_nazwa)and(pelna_nazwa==""))then NazwyNamespace("","",true,czy_biezaca_wiki); 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,pagename=mw.ustring.match(strona,"^[%s_]*([^:]+)[%s_]*:[%s_]*(.+)[%s_]*$"); if(not np)then NazwyNamespace("",strona,false,czy_biezaca_wiki); return ""; end; NazwyNamespace(np,pagename,false,czy_biezaca_wiki); return np; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_strony=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_]*(.-)[%s_]*$"); if(not nazwa_przestrzeni)then NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")then NazwyNamespace(nstext,nazwa_strony,false,czy_biezaca_wiki); return nstext; else if(nazwa_przestrzeni~="")then pelna_nazwa=nazwa_strony; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; end; m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; else if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; end; end; m["PRZESTRZEŃDYSKUSJI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"}; tabela_nazw.dyskusja=dyskusja; return dyskusja; else if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.dyskusja=dyskusja; return dyskusja; end; end; m.NAZWASTRONY = function(frame,tabela_nazw,czy_wiki) if(tabela_nazw)then if((tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.p)then return tabela_nazw.pagename; else local pagename=tabela_nazw.pagename; pagename=mw.ustring.gsub(pagename,"^[:%s_]+",""); pagename=mw.ustring.gsub(pagename,"[%s_]+$",""); pagename=mw.ustring.gsub(pagename,"[%s_]+"," "); pagename=mw.getContentLanguage():ucfirst(pagename); tabela_nazw.pagename=pagename; tabela_nazw.p=true; return pagename; end; end end; local function NazwyPagename(namespace,pagename,n,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.pagename=pagename; tabela_nazw.p=true; tabela_nazw.n=n; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; local function M(pagename) if(tabela_nazw)then if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then M(""); NazwyPagename("","",true,czy_biezaca_wiki); return ""; end; local ns=title.nsText; local pagename=mw.ustring.gsub(title.text,"[%s_]+"," "); M(pagename); NazwyPagename(ns,pagename,false,czy_biezaca_wiki); return pagename; elseif((pelna_nazwa)and(pelna_nazwa==""))then M(""); NazwyPagename("","",true,czy_biezaca_wiki); 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 ns,nazwa_strony=mw.ustring.match(strona,"^%s*([^:]+)%s*:%s*(.*[^%s])%s*$"); if(not nazwa_strony)then M(strona); local strona=mw.getContentLanguage():ucfirst(strona); NazwyPagename("",strona,true,czy_biezaca_wiki); return strona; end; M(nazwa_strony); nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony); NazwyPagename(ns,nazwa_strony,true,czy_biezaca_wiki); return nazwa_strony; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")or((nstext=="")and(nazwa_przestrzeni==""))then --local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.-)[%s_]*$"); if(not nazwa_jednostki)then nazwa_jednostki="";end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," "); M(nazwa_jednostki); local pagename=mw.getContentLanguage():ucfirst(nazwa_jednostki); NazwyPagename(nstext,pagename,true,czy_biezaca_wiki); return pagename; else pelna_nazwa=nazwa_jednostki; end; 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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; end; end; end; m.BAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.base))then return tabela_nazw.base; end; local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$"); local base=(base)and base or nazwa2; if(tabela_nazw)then tabela_nazw.base=base; end; return base; end; m["PEŁNANAZWASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["PEŁNABAZOWANAZWASTRONY"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWABAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.BAZOWANAZWASTRONYDYSKUSJI=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWANAZWASTRONY = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.NAZWASTRONYDYSKUSJI = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["CzęśćTytułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tytul=PobierzParametr(1); local ktora=PobierzParametr(2); ktora=tonumber(ktora) or 1; 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,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookname)then return tabela_nazw.bookname; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw; if(not tabela_nazw.przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); tabela_nazw.przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.przedmiotowa; end; local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; else if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=3,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; end; m["PEŁNANAZWAKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki; end; m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.article)then return tabela_nazw.article; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; else if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; 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; tabela_nazw.article=nazw or ""; return tabela_nazw.article; end; m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); if(artykul=="")then local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_ksiazki; else return artykul; end; end; m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul; end; m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookspace)then return tabela_nazw.bookspace; end; 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_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); 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 tabela_nazw.bookspace=""; return ""; elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then local nazwa_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; 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=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; return ""; end; else tabela_nazw.bookspace=""; return ""; end; end; m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAPRZESTRZENIKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_ksiazki~="") and ":" or "")..nazwa_ksiazki; end; m.NAZWASUBPODSTRONY = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa") or PobierzParametr(1); nazwa=nazwa or ""; local subpage=mw.ustring.match(nazwa,"[^/]*$"); return subpage; end; m.NAZWASUBSTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.subpage))then return tabela_nazw.subpage; end; local pelna_nazwa_strony2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local subpage=m.NAZWASUBPODSTRONY(pelna_nazwa_strony2); if(tabela_nazw)then tabela_nazw.subpage=subpage; end; return subpage; end; m["SUBNAZWAKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.book))then return tabela_nazw.book; end; local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local book=mw.ustring.match(nazwa_ksiazki,"[^/]*$"); if(tabela_nazw)then tabela_nazw.book=book; end; return book; end; m.NAZWAKORZENIASTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.root))then return tabela_nazw.root; end; local nazwa_strony=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local root=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; if(tabela_nazw)then tabela_nazw.root=root; end; return root; end; m["PEŁNANAZWAKORZENIASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_korzenia_strony=m.NAZWAKORZENIASTRONY(frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_przestrzeni~="")and ":" or "")..nazwa_korzenia_strony; end; m["NazwaModułu"]=function(...) local args={ ... }; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa_przestrzeni=PobierzParametr(1); local nazwa_przestrzeni_ksiazki=PobierzParametr(2); local nazwa_ksiazki=PobierzParametr(3); local nazwa_artykulu=PobierzParametr(4); return (((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "")); end; return m; ki6dmi2qz5jkjf3hvg2e6npqbghs7dv 552107 552105 2026-08-17T09:10:59Z Persino 2851 552107 Scribunto text/plain local m={}; local function WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_niekanoniczna) local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_kanonicznych)do if(nazwa_niekanoniczna==mw.ustring.lower(nazwa_niekanoniczna_przestrzeni_nazw))then return mw.site.namespaces[nazwa_kanoniczna_przestrzeni_nazw]; end; end; end; local function UchwytNazwyPrzestrzeniNazw(nazwa_przestrzeni_nazw) local uchwyt_przestrzeni_nazw; local parametry_modul=require("Module:Parametry"); if(parametry_modul.TypeString(nazwa_przestrzeni_nazw))then nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); nazwa_przestrzeni_nazw=mw.ustring.lower(nazwa_przestrzeni_nazw); uchwyt_przestrzeni_nazw=WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_przestrzeni_nazw) or mw.site.namespaces[nazwa_przestrzeni_nazw]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw]; end; if(uchwyt_przestrzeni_nazw)then return uchwyt_przestrzeni_nazw; end; if(parametry_modul.TypeNumber(nazwa_przestrzeni_nazw))then return nil;end; local nazwy_kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna,nazwa_niekanoniczna in pairs(nazwy_kanoniczne_modul.inne_przestrzenie_nazw)do local nazwa_kanoniczna_temp=mw.ustring.lower(nazwa_kanoniczna); local nazwa_niekanoniczna_temp=mw.ustring.lower(nazwa_niekanoniczna); if((nazwa_przestrzeni_nazw==nazwa_kanoniczna_temp)or(nazwa_przestrzeni_nazw==nazwa_niekanoniczna_temp))then local uchwyt={}; uchwyt.name=nazwa_niekanoniczna; uchwyt.canonicalName=nazwa_kanoniczna; local talk=mw.ustring.match(nazwa_kanoniczna_temp,"%s+talk$") and true or false; uchwyt.isTalk=talk; uchwyt.isSubject=not talk; if(not talk)then uchwyt.subject=uchwyt; local uchwyt_talk={}; local nazwa_kanoniczna=nazwa_kanoniczna.." talk"; local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_talk.name=nazwa_niekanoniczna; uchwyt_talk.canonicalName=nazwa_kanoniczna; uchwyt_talk.isTalk=true; uchwyt_talk.isSubject=false; uchwyt_talk.talk=uchwyt_talk; uchwyt_talk.subject=uchwyt; uchwyt.talk=uchwyt_talk; else uchwyt.talk=uchwyt; local uchwyt_subject={}; local nazwa_kanoniczna=mw.ustring.gsub(nazwa_kanoniczna,"%s+talk$",""); local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_subject.name=nazwa_niekanoniczna; uchwyt_subject.canonicalName=nazwa_kanoniczna; uchwyt_subject.isTalk=false; uchwyt_subject.isSubject=true; uchwyt_subject.talk=uchwyt; uchwyt_subject.subject=uchwyt_subject; uchwyt.subject=uchwyt_subject; end; return uchwyt; end; end; return nil; end; local function ZnajdowanieSkojarzonychPrzestrzeniNazw(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 WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); 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 kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_niekanonicznych)do if(uchwyt_przestrzeni_nazw.name==nazwa_niekanoniczna_przestrzeni_nazw)then return nazwa_kanoniczna_przestrzeni_nazw; end; end; return uchwyt_przestrzeni_nazw.canonicalName; else return nil; end; end; local function WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); if(uchwyt_przestrzeni_nazw)then if((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))then return "Projekt"; elseif((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then return "Dyskusja projektu"; end; return uchwyt_przestrzeni_nazw.name; end; return nil; end; local function OperacjeKreskaPoziomaDolna(myslnik,nazwa) local parametry_modul=require("Module:Parametry"); if(myslnik)then nazwa=mw.ustring.gsub(nazwa,"[%s_]+","_"); else nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); end; return mw.getContentLanguage():ucfirst(nazwa); end; local 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.aliasy_znanych_nazw_niekanonicznych)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=UchwytNazwyPrzestrzeniNazw(nazwa_niekanoniczna_nazwy_przestrzeni_nazw); return uchwyt_przestrzeni_nazw; end; end; end; return nil; end; local function DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_nazw2=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw); if(uchwyt_przestrzeni_nazw2)then if(kanoniczna)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); if(kanoniczna_nazwa)then return OperacjeKreskaPoziomaDolna(myslnik,kanoniczna_nazwa); else return nil; end; else local nazwa_niekanoniczna=WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); return OperacjeKreskaPoziomaDolna(myslnik,nazwa_niekanoniczna); end; else return nil; end; end; local function NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_glownej=UchwytNazwyPrzestrzeniNazw(""); return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu); end; local function TranslacjaNieBazowejPrzestrzeniNazw(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=UchwytNazwyPrzestrzeniNazw(tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else return nil; end; else local uchwyt_przestrzeni_nazw=UchwytNazwyPrzestrzeniNazw((nazwa)and nazwa or ""); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(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 DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else if(czy_istnieje)then return nil; else return OperacjeKreskaPoziomaDolna(myslnik,nazwa); end; end; end; end; end; local function TranslacjaNazwyPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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=TranslacjaNieBazowejPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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 NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu); else return TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje); end; else return NazwaPrzestrzeniNazwBazowa(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) ---- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; ---- 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=UchwytNazwyPrzestrzeniNazw(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=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw) if(uchwyt)then return uchwyt_przestrzeni_nazw2;end; if((uchwyt_przestrzeni_nazw2)and(uchwyt_przestrzeni_nazw2.id))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=ZnajdowanieSkojarzonychPrzestrzeniNazw(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_wraz_z_ich_opisem_wedle_danych_stron; local uchwyt=m.Np{["nazwa"]=nazwa, ["dyskusja"]=((dyskusja)and "tak" or ""), ["przedmiotowa"]=((przedmiotowa)and "tak" or ""), ["uchwyt"]="tak", }; if(uchwyt)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(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)"; elseif((uchwyt.canonicalName=="Project")and(nazwij_projektem))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Projekt"; elseif((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Dyskusja projektu"; 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=TranslacjaNazwyPrzestrzeniNazw(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 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 awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie); local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna); local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]); local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt); local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ---- 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="tak",["wynik błędu nietekstowy"]="tak",} if(not wartosc_kanoniczna)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; local wartosc_oczekiwana=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"]=po_polsku,["awaryjnie"]=awaryjnie,["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,}; if(not wartosc_oczekiwana)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; wartosc_oczekiwana=tostring(wartosc_oczekiwana); local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron; 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 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 local pos={"w","Pomoc:Przestrzeń nazw"}; local strona2=pos[2]; local klucz_projektu2=pos[1]; 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 klucz_projektu=pos[1]; kod_jezyka=nil; kod_projektu=nil; return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},}; end; 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.charakterystyczne_przestrzenie_nazw; 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.tablica_lokalne_lingwistyczne_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.podstawowe_przestrzenie_nazw; 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 num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$"); if(num)then local nazwa_kan; if(id)then nazwa_kan=m.Np{["nazwa"]=num,["id"]="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; 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)then return nazwa_kan;end; nazwa=nazwa_kan; 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 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; elseif ((name~="")and (por_prze(name.." talk"))) or((name=="")and(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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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(name); end; else return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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.." talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; if awaryjnie then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)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; 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; 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 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"] or {projekt, projekt.." talk"}; local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"]; local function Zwracanie(pos1,pos2,name,numer) if((po_polsku)and(pos1))then local pos=name and (pos1[name] or {})[numer] or (not name and pos1[numer]); if(pos)then return wyswietlana_nazwa(pos); end; end; local pos=pos2[numer]; return wyswietlana_nazwa(pos); end; if(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)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 por_prze(name.." 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,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(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 ((name~="")and (por_prze(name.." talk"))) or ((name=="")and (por_prze("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 then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then if por_prze("")then return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),}; end; 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(np~="Wikijunior"))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; 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 przypadek=PobierzParametr("przypadek"); ----- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ----- 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_kody_projektu_wraz_z_ich_nazwami_stron; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablica_aliasowe_kody_projektu=wiki_interwiki_modul.tablica_aliasowe_kody_projektu; local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; local aliasy=tablica_aliasowe_kody_projektu[url]; local projekt=nil; local przypadek=parametry_modul.CzyTak(przypadek) and przypadek or nil; for kod,_ in pairs(aliasy)do local __projekt=lista_projektow[kod]; if(parametry_modul.TypeTable(__projekt))then projekt=__projekt[1]; else projekt=__projekt; end; if(__projekt)then nazwa=nazwa or (przypadek and (__projekt[przypadek] or __projekt["mianownik"]) or __projekt[1]); 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,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.n)then return tabela_nazw.namespace; else local namespace=tabela_nazw.namespace; namespace=mw.ustring.gsub(namespace,"[%s_]+"," "); tabela_nazw.namespace=namespace; tabela_nazw.n=true; return namespace; end; end; local function NazwyNamespace(namespace,pagename,p,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.n=true; tabela_nazw.pagename=pagename; tabela_nazw.p=p if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then NazwyNamespace("","",true,czy_biezaca_wiki); return ""; end; local namespace= mw.ustring.gsub(title.nsText,"_+"," "); NazwyNamespace(namespace,title.text,false,czy_biezaca_wiki); return namespace; elseif((pelna_nazwa)and(pelna_nazwa==""))then NazwyNamespace("","",true,czy_biezaca_wiki); 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,pagename=mw.ustring.match(strona,"^[%s_]*([^:]+)[%s_]*:[%s_]*(.+)[%s_]*$"); if(not np)then NazwyNamespace("",strona,false,czy_biezaca_wiki); return ""; end; NazwyNamespace(np,pagename,false,czy_biezaca_wiki); return np; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_strony=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_]*(.-)[%s_]*$"); if(not nazwa_przestrzeni)then NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")then NazwyNamespace(nstext,nazwa_strony,false,czy_biezaca_wiki); return nstext; else if(nazwa_przestrzeni~="")then pelna_nazwa=nazwa_strony; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; end; m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; else if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; end; end; m["PRZESTRZEŃDYSKUSJI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"}; tabela_nazw.dyskusja=dyskusja; return dyskusja; else if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.dyskusja=dyskusja; return dyskusja; end; end; m.NAZWASTRONY = function(frame,tabela_nazw,czy_wiki) if(tabela_nazw)then if((tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.p)then return tabela_nazw.pagename; else local pagename=tabela_nazw.pagename; pagename=mw.ustring.gsub(pagename,"^[:%s_]+",""); pagename=mw.ustring.gsub(pagename,"[%s_]+$",""); pagename=mw.ustring.gsub(pagename,"[%s_]+"," "); pagename=mw.getContentLanguage():ucfirst(pagename); tabela_nazw.pagename=pagename; tabela_nazw.p=true; return pagename; end; end end; local function NazwyPagename(namespace,pagename,n,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.pagename=pagename; tabela_nazw.p=true; tabela_nazw.n=n; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; local function M(pagename) if(tabela_nazw)then if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then M(""); NazwyPagename("","",true,czy_biezaca_wiki); return ""; end; local ns=title.nsText; local pagename=mw.ustring.gsub(title.text,"[%s_]+"," "); M(pagename); NazwyPagename(ns,pagename,false,czy_biezaca_wiki); return pagename; elseif((pelna_nazwa)and(pelna_nazwa==""))then M(""); NazwyPagename("","",true,czy_biezaca_wiki); 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 ns,nazwa_strony=mw.ustring.match(strona,"^%s*([^:]+)%s*:%s*(.*[^%s])%s*$"); if(not nazwa_strony)then M(strona); local strona=mw.getContentLanguage():ucfirst(strona); NazwyPagename("",strona,true,czy_biezaca_wiki); return strona; end; M(nazwa_strony); nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony); NazwyPagename(ns,nazwa_strony,true,czy_biezaca_wiki); return nazwa_strony; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")or((nstext=="")and(nazwa_przestrzeni==""))then --local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.-)[%s_]*$"); if(not nazwa_jednostki)then nazwa_jednostki="";end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," "); M(nazwa_jednostki); local pagename=mw.getContentLanguage():ucfirst(nazwa_jednostki); NazwyPagename(nstext,pagename,true,czy_biezaca_wiki); return pagename; else pelna_nazwa=nazwa_jednostki; end; 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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; end; end; end; m.BAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.base))then return tabela_nazw.base; end; local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$"); local base=(base)and base or nazwa2; if(tabela_nazw)then tabela_nazw.base=base; end; return base; end; m["PEŁNANAZWASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["PEŁNABAZOWANAZWASTRONY"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWABAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.BAZOWANAZWASTRONYDYSKUSJI=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWANAZWASTRONY = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.NAZWASTRONYDYSKUSJI = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["CzęśćTytułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tytul=PobierzParametr(1); local ktora=PobierzParametr(2); ktora=tonumber(ktora) or 1; 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,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookname)then return tabela_nazw.bookname; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw; if(not tabela_nazw.przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); tabela_nazw.przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.przedmiotowa; end; local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; else if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=3,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; end; m["PEŁNANAZWAKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki; end; m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.article)then return tabela_nazw.article; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; else if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; 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; tabela_nazw.article=nazw or ""; return tabela_nazw.article; end; m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); if(artykul=="")then local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_ksiazki; else return artykul; end; end; m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul; end; m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookspace)then return tabela_nazw.bookspace; end; 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_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); 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 tabela_nazw.bookspace=""; return ""; elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then local nazwa_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; 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=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; return ""; end; else tabela_nazw.bookspace=""; return ""; end; end; m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAPRZESTRZENIKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_ksiazki~="") and ":" or "")..nazwa_ksiazki; end; m.NAZWASUBPODSTRONY = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa") or PobierzParametr(1); nazwa=nazwa or ""; local subpage=mw.ustring.match(nazwa,"[^/]*$"); return subpage; end; m.NAZWASUBSTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.subpage))then return tabela_nazw.subpage; end; local pelna_nazwa_strony2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local subpage=m.NAZWASUBPODSTRONY(pelna_nazwa_strony2); if(tabela_nazw)then tabela_nazw.subpage=subpage; end; return subpage; end; m["SUBNAZWAKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.book))then return tabela_nazw.book; end; local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local book=mw.ustring.match(nazwa_ksiazki,"[^/]*$"); if(tabela_nazw)then tabela_nazw.book=book; end; return book; end; m.NAZWAKORZENIASTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.root))then return tabela_nazw.root; end; local nazwa_strony=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local root=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; if(tabela_nazw)then tabela_nazw.root=root; end; return root; end; m["PEŁNANAZWAKORZENIASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_korzenia_strony=m.NAZWAKORZENIASTRONY(frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_przestrzeni~="")and ":" or "")..nazwa_korzenia_strony; end; m["NazwaModułu"]=function(...) local args={ ... }; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa_przestrzeni=PobierzParametr(1); local nazwa_przestrzeni_ksiazki=PobierzParametr(2); local nazwa_ksiazki=PobierzParametr(3); local nazwa_artykulu=PobierzParametr(4); return (((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "")); end; return m; 8xslnx0ixbsvkpuulk068od092lrhx5 552108 552107 2026-08-17T09:15:19Z Persino 2851 552108 Scribunto text/plain local m={}; local function WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_niekanoniczna) local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_kanonicznych)do if(nazwa_niekanoniczna==mw.ustring.lower(nazwa_niekanoniczna_przestrzeni_nazw))then return mw.site.namespaces[nazwa_kanoniczna_przestrzeni_nazw]; end; end; end; local function UchwytNazwyPrzestrzeniNazw(nazwa_przestrzeni_nazw) local uchwyt_przestrzeni_nazw; local parametry_modul=require("Module:Parametry"); if(parametry_modul.TypeString(nazwa_przestrzeni_nazw))then nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); nazwa_przestrzeni_nazw=mw.ustring.lower(nazwa_przestrzeni_nazw); uchwyt_przestrzeni_nazw=WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_przestrzeni_nazw) or mw.site.namespaces[nazwa_przestrzeni_nazw]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw]; end; if(uchwyt_przestrzeni_nazw)then return uchwyt_przestrzeni_nazw; end; if(parametry_modul.TypeNumber(nazwa_przestrzeni_nazw))then return nil;end; local nazwy_kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna,nazwa_niekanoniczna in pairs(nazwy_kanoniczne_modul.inne_przestrzenie_nazw)do local nazwa_kanoniczna_temp=mw.ustring.lower(nazwa_kanoniczna); local nazwa_niekanoniczna_temp=mw.ustring.lower(nazwa_niekanoniczna); if((nazwa_przestrzeni_nazw==nazwa_kanoniczna_temp)or(nazwa_przestrzeni_nazw==nazwa_niekanoniczna_temp))then local uchwyt={}; uchwyt.name=nazwa_niekanoniczna; uchwyt.canonicalName=nazwa_kanoniczna; local talk=mw.ustring.match(nazwa_kanoniczna_temp,"%s+talk$") and true or false; uchwyt.isTalk=talk; uchwyt.isSubject=not talk; if(not talk)then uchwyt.subject=uchwyt; local uchwyt_talk={}; local nazwa_kanoniczna=nazwa_kanoniczna.." talk"; local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_talk.name=nazwa_niekanoniczna; uchwyt_talk.canonicalName=nazwa_kanoniczna; uchwyt_talk.isTalk=true; uchwyt_talk.isSubject=false; uchwyt_talk.talk=uchwyt_talk; uchwyt_talk.subject=uchwyt; uchwyt.talk=uchwyt_talk; else uchwyt.talk=uchwyt; local uchwyt_subject={}; local nazwa_kanoniczna=mw.ustring.gsub(nazwa_kanoniczna,"%s+talk$",""); local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_subject.name=nazwa_niekanoniczna; uchwyt_subject.canonicalName=nazwa_kanoniczna; uchwyt_subject.isTalk=false; uchwyt_subject.isSubject=true; uchwyt_subject.talk=uchwyt; uchwyt_subject.subject=uchwyt_subject; uchwyt.subject=uchwyt_subject; end; return uchwyt; end; end; return nil; end; local function ZnajdowanieSkojarzonychPrzestrzeniNazw(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 WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); 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 kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_niekanonicznych)do if(uchwyt_przestrzeni_nazw.name==nazwa_niekanoniczna_przestrzeni_nazw)then return nazwa_kanoniczna_przestrzeni_nazw; end; end; return uchwyt_przestrzeni_nazw.canonicalName; else return nil; end; end; local function WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); if(uchwyt_przestrzeni_nazw)then if((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))then return "Projekt"; elseif((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then return "Dyskusja projektu"; end; return uchwyt_przestrzeni_nazw.name; end; return nil; end; local function OperacjeKreskaPoziomaDolna(myslnik,nazwa) local parametry_modul=require("Module:Parametry"); if(myslnik)then nazwa=mw.ustring.gsub(nazwa,"[%s_]+","_"); else nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); end; return mw.getContentLanguage():ucfirst(nazwa); end; local 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.aliasy_znanych_nazw_niekanonicznych)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=UchwytNazwyPrzestrzeniNazw(nazwa_niekanoniczna_nazwy_przestrzeni_nazw); return uchwyt_przestrzeni_nazw; end; end; end; return nil; end; local function DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_nazw2=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw); if(uchwyt_przestrzeni_nazw2)then if(kanoniczna)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); if(kanoniczna_nazwa)then return OperacjeKreskaPoziomaDolna(myslnik,kanoniczna_nazwa); else return nil; end; else local nazwa_niekanoniczna=WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); return OperacjeKreskaPoziomaDolna(myslnik,nazwa_niekanoniczna); end; else return nil; end; end; local function NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_glownej=UchwytNazwyPrzestrzeniNazw(""); return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu); end; local function TranslacjaNieBazowejPrzestrzeniNazw(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=UchwytNazwyPrzestrzeniNazw(tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else return nil; end; else local uchwyt_przestrzeni_nazw=UchwytNazwyPrzestrzeniNazw((nazwa)and nazwa or ""); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(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 DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else if(czy_istnieje)then return nil; else return OperacjeKreskaPoziomaDolna(myslnik,nazwa); end; end; end; end; end; local function TranslacjaNazwyPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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=TranslacjaNieBazowejPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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 NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu); else return TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje); end; else return NazwaPrzestrzeniNazwBazowa(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) ---- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; ---- 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=UchwytNazwyPrzestrzeniNazw(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=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw) if(uchwyt)then return uchwyt_przestrzeni_nazw2;end; if((uchwyt_przestrzeni_nazw2)and(uchwyt_przestrzeni_nazw2.id))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=ZnajdowanieSkojarzonychPrzestrzeniNazw(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_wraz_z_ich_opisem_wedle_danych_stron; local uchwyt=m.Np{["nazwa"]=nazwa, ["dyskusja"]=((dyskusja)and "tak" or ""), ["przedmiotowa"]=((przedmiotowa)and "tak" or ""), ["uchwyt"]="tak", }; if(uchwyt)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(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)"; elseif((uchwyt.canonicalName=="Project")and(nazwij_projektem))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Projekt"; elseif((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Dyskusja projektu"; 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=TranslacjaNazwyPrzestrzeniNazw(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 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 awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie); local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna); local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]); local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt); local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ---- 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="tak",["wynik błędu nietekstowy"]="tak",} if(not wartosc_kanoniczna)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; local wartosc_oczekiwana=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"]=po_polsku,["awaryjnie"]=awaryjnie,["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,}; if(not wartosc_oczekiwana)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; wartosc_oczekiwana=tostring(wartosc_oczekiwana); local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron; 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 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 local pos={"w","Pomoc:Przestrzeń nazw"}; local strona2=pos[2]; local klucz_projektu2=pos[1]; 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 klucz_projektu=pos[1]; kod_jezyka=nil; kod_projektu=nil; return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},}; end; 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.charakterystyczne_przestrzenie_nazw; 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.tablica_lokalne_lingwistyczne_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.podstawowe_przestrzenie_nazw; 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 num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$"); if(num)then local nazwa_kan; if(id)then nazwa_kan=m.Np{["nazwa"]=num,["id"]="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; 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)then return nazwa_kan;end; nazwa=nazwa_kan; 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 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; elseif ((name~="")and (por_prze(name.." talk"))) or((name=="")and(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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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(name); end; else return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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.." talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; if awaryjnie then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)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; 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; 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 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"] or {projekt, projekt.." talk"}; local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"]; local function Zwracanie(pos1,pos2,name,numer) if((po_polsku)and(pos1))then local pos=name and (pos1[name] or {})[numer] or (not name and pos1[numer]); if(pos)then return wyswietlana_nazwa(pos); end; end; local pos=pos2[numer]; return wyswietlana_nazwa(pos); end; if(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)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 por_prze(name.." 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,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(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 ((name~="")and (por_prze(name.." talk"))) or ((name=="")and (por_prze("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 then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then if por_prze("")then return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),}; end; 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(np~="Wikijunior"))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; 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 przypadek=PobierzParametr("przypadek"); ----- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ----- 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_kody_projektu_wraz_z_ich_nazwami_stron; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablica_aliasowe_kody_projektu=wiki_interwiki_modul.tablica_aliasowe_kody_projektu; local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; local aliasy=tablica_aliasowe_kody_projektu[url]; local projekt=nil; local przypadek=parametry_modul.CzyTak(przypadek) and przypadek or nil; for kod,_ in pairs(aliasy)do local __projekt=lista_projektow[kod]; local czy_table_projekt=parametry_modul.TypeTable(__projekt); if(czy_table_projekt)then projekt=__projekt[1]; else projekt=__projekt; end; if(__projekt)then nazwa=nazwa or (czy_table_projekt and (przypadek and (__projekt[przypadek] or __projekt["mianownik"]) or __projekt[1]) or __projekt); 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,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.n)then return tabela_nazw.namespace; else local namespace=tabela_nazw.namespace; namespace=mw.ustring.gsub(namespace,"[%s_]+"," "); tabela_nazw.namespace=namespace; tabela_nazw.n=true; return namespace; end; end; local function NazwyNamespace(namespace,pagename,p,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.n=true; tabela_nazw.pagename=pagename; tabela_nazw.p=p if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then NazwyNamespace("","",true,czy_biezaca_wiki); return ""; end; local namespace= mw.ustring.gsub(title.nsText,"_+"," "); NazwyNamespace(namespace,title.text,false,czy_biezaca_wiki); return namespace; elseif((pelna_nazwa)and(pelna_nazwa==""))then NazwyNamespace("","",true,czy_biezaca_wiki); 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,pagename=mw.ustring.match(strona,"^[%s_]*([^:]+)[%s_]*:[%s_]*(.+)[%s_]*$"); if(not np)then NazwyNamespace("",strona,false,czy_biezaca_wiki); return ""; end; NazwyNamespace(np,pagename,false,czy_biezaca_wiki); return np; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_strony=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_]*(.-)[%s_]*$"); if(not nazwa_przestrzeni)then NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")then NazwyNamespace(nstext,nazwa_strony,false,czy_biezaca_wiki); return nstext; else if(nazwa_przestrzeni~="")then pelna_nazwa=nazwa_strony; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; end; m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; else if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; end; end; m["PRZESTRZEŃDYSKUSJI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"}; tabela_nazw.dyskusja=dyskusja; return dyskusja; else if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.dyskusja=dyskusja; return dyskusja; end; end; m.NAZWASTRONY = function(frame,tabela_nazw,czy_wiki) if(tabela_nazw)then if((tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.p)then return tabela_nazw.pagename; else local pagename=tabela_nazw.pagename; pagename=mw.ustring.gsub(pagename,"^[:%s_]+",""); pagename=mw.ustring.gsub(pagename,"[%s_]+$",""); pagename=mw.ustring.gsub(pagename,"[%s_]+"," "); pagename=mw.getContentLanguage():ucfirst(pagename); tabela_nazw.pagename=pagename; tabela_nazw.p=true; return pagename; end; end end; local function NazwyPagename(namespace,pagename,n,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.pagename=pagename; tabela_nazw.p=true; tabela_nazw.n=n; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; local function M(pagename) if(tabela_nazw)then if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then M(""); NazwyPagename("","",true,czy_biezaca_wiki); return ""; end; local ns=title.nsText; local pagename=mw.ustring.gsub(title.text,"[%s_]+"," "); M(pagename); NazwyPagename(ns,pagename,false,czy_biezaca_wiki); return pagename; elseif((pelna_nazwa)and(pelna_nazwa==""))then M(""); NazwyPagename("","",true,czy_biezaca_wiki); 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 ns,nazwa_strony=mw.ustring.match(strona,"^%s*([^:]+)%s*:%s*(.*[^%s])%s*$"); if(not nazwa_strony)then M(strona); local strona=mw.getContentLanguage():ucfirst(strona); NazwyPagename("",strona,true,czy_biezaca_wiki); return strona; end; M(nazwa_strony); nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony); NazwyPagename(ns,nazwa_strony,true,czy_biezaca_wiki); return nazwa_strony; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")or((nstext=="")and(nazwa_przestrzeni==""))then --local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.-)[%s_]*$"); if(not nazwa_jednostki)then nazwa_jednostki="";end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," "); M(nazwa_jednostki); local pagename=mw.getContentLanguage():ucfirst(nazwa_jednostki); NazwyPagename(nstext,pagename,true,czy_biezaca_wiki); return pagename; else pelna_nazwa=nazwa_jednostki; end; 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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; end; end; end; m.BAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.base))then return tabela_nazw.base; end; local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$"); local base=(base)and base or nazwa2; if(tabela_nazw)then tabela_nazw.base=base; end; return base; end; m["PEŁNANAZWASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["PEŁNABAZOWANAZWASTRONY"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWABAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.BAZOWANAZWASTRONYDYSKUSJI=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWANAZWASTRONY = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.NAZWASTRONYDYSKUSJI = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["CzęśćTytułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tytul=PobierzParametr(1); local ktora=PobierzParametr(2); ktora=tonumber(ktora) or 1; 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,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookname)then return tabela_nazw.bookname; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw; if(not tabela_nazw.przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); tabela_nazw.przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.przedmiotowa; end; local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; else if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=3,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; end; m["PEŁNANAZWAKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki; end; m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.article)then return tabela_nazw.article; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; else if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; 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; tabela_nazw.article=nazw or ""; return tabela_nazw.article; end; m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); if(artykul=="")then local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_ksiazki; else return artykul; end; end; m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul; end; m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookspace)then return tabela_nazw.bookspace; end; 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_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); 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 tabela_nazw.bookspace=""; return ""; elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then local nazwa_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; 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=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; return ""; end; else tabela_nazw.bookspace=""; return ""; end; end; m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAPRZESTRZENIKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_ksiazki~="") and ":" or "")..nazwa_ksiazki; end; m.NAZWASUBPODSTRONY = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa") or PobierzParametr(1); nazwa=nazwa or ""; local subpage=mw.ustring.match(nazwa,"[^/]*$"); return subpage; end; m.NAZWASUBSTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.subpage))then return tabela_nazw.subpage; end; local pelna_nazwa_strony2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local subpage=m.NAZWASUBPODSTRONY(pelna_nazwa_strony2); if(tabela_nazw)then tabela_nazw.subpage=subpage; end; return subpage; end; m["SUBNAZWAKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.book))then return tabela_nazw.book; end; local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local book=mw.ustring.match(nazwa_ksiazki,"[^/]*$"); if(tabela_nazw)then tabela_nazw.book=book; end; return book; end; m.NAZWAKORZENIASTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.root))then return tabela_nazw.root; end; local nazwa_strony=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local root=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; if(tabela_nazw)then tabela_nazw.root=root; end; return root; end; m["PEŁNANAZWAKORZENIASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_korzenia_strony=m.NAZWAKORZENIASTRONY(frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_przestrzeni~="")and ":" or "")..nazwa_korzenia_strony; end; m["NazwaModułu"]=function(...) local args={ ... }; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa_przestrzeni=PobierzParametr(1); local nazwa_przestrzeni_ksiazki=PobierzParametr(2); local nazwa_ksiazki=PobierzParametr(3); local nazwa_artykulu=PobierzParametr(4); return (((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "")); end; return m; oi6z48wepep8znyi8vxkf6dcagfg419 552109 552108 2026-08-17T09:28:33Z Persino 2851 552109 Scribunto text/plain local m={}; local function WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_niekanoniczna) local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_kanonicznych)do if(nazwa_niekanoniczna==mw.ustring.lower(nazwa_niekanoniczna_przestrzeni_nazw))then return mw.site.namespaces[nazwa_kanoniczna_przestrzeni_nazw]; end; end; end; local function UchwytNazwyPrzestrzeniNazw(nazwa_przestrzeni_nazw) local uchwyt_przestrzeni_nazw; local parametry_modul=require("Module:Parametry"); if(parametry_modul.TypeString(nazwa_przestrzeni_nazw))then nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); nazwa_przestrzeni_nazw=mw.ustring.lower(nazwa_przestrzeni_nazw); uchwyt_przestrzeni_nazw=WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_przestrzeni_nazw) or mw.site.namespaces[nazwa_przestrzeni_nazw]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw]; end; if(uchwyt_przestrzeni_nazw)then return uchwyt_przestrzeni_nazw; end; if(parametry_modul.TypeNumber(nazwa_przestrzeni_nazw))then return nil;end; local nazwy_kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna,nazwa_niekanoniczna in pairs(nazwy_kanoniczne_modul.inne_przestrzenie_nazw)do local nazwa_kanoniczna_temp=mw.ustring.lower(nazwa_kanoniczna); local nazwa_niekanoniczna_temp=mw.ustring.lower(nazwa_niekanoniczna); if((nazwa_przestrzeni_nazw==nazwa_kanoniczna_temp)or(nazwa_przestrzeni_nazw==nazwa_niekanoniczna_temp))then local uchwyt={}; uchwyt.name=nazwa_niekanoniczna; uchwyt.canonicalName=nazwa_kanoniczna; local talk=mw.ustring.match(nazwa_kanoniczna_temp,"%s+talk$") and true or false; uchwyt.isTalk=talk; uchwyt.isSubject=not talk; if(not talk)then uchwyt.subject=uchwyt; local uchwyt_talk={}; local nazwa_kanoniczna=nazwa_kanoniczna.." talk"; local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_talk.name=nazwa_niekanoniczna; uchwyt_talk.canonicalName=nazwa_kanoniczna; uchwyt_talk.isTalk=true; uchwyt_talk.isSubject=false; uchwyt_talk.talk=uchwyt_talk; uchwyt_talk.subject=uchwyt; uchwyt.talk=uchwyt_talk; else uchwyt.talk=uchwyt; local uchwyt_subject={}; local nazwa_kanoniczna=mw.ustring.gsub(nazwa_kanoniczna,"%s+talk$",""); local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_subject.name=nazwa_niekanoniczna; uchwyt_subject.canonicalName=nazwa_kanoniczna; uchwyt_subject.isTalk=false; uchwyt_subject.isSubject=true; uchwyt_subject.talk=uchwyt; uchwyt_subject.subject=uchwyt_subject; uchwyt.subject=uchwyt_subject; end; return uchwyt; end; end; return nil; end; local function ZnajdowanieSkojarzonychPrzestrzeniNazw(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 WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); 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 kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_niekanonicznych)do if(uchwyt_przestrzeni_nazw.name==nazwa_niekanoniczna_przestrzeni_nazw)then return nazwa_kanoniczna_przestrzeni_nazw; end; end; return uchwyt_przestrzeni_nazw.canonicalName; else return nil; end; end; local function WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); if(uchwyt_przestrzeni_nazw)then if((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))then return "Projekt"; elseif((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then return "Dyskusja projektu"; end; return uchwyt_przestrzeni_nazw.name; end; return nil; end; local function OperacjeKreskaPoziomaDolna(myslnik,nazwa) local parametry_modul=require("Module:Parametry"); if(myslnik)then nazwa=mw.ustring.gsub(nazwa,"[%s_]+","_"); else nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); end; return mw.getContentLanguage():ucfirst(nazwa); end; local 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.aliasy_znanych_nazw_niekanonicznych)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=UchwytNazwyPrzestrzeniNazw(nazwa_niekanoniczna_nazwy_przestrzeni_nazw); return uchwyt_przestrzeni_nazw; end; end; end; return nil; end; local function DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_nazw2=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw); if(uchwyt_przestrzeni_nazw2)then if(kanoniczna)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); if(kanoniczna_nazwa)then return OperacjeKreskaPoziomaDolna(myslnik,kanoniczna_nazwa); else return nil; end; else local nazwa_niekanoniczna=WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); return OperacjeKreskaPoziomaDolna(myslnik,nazwa_niekanoniczna); end; else return nil; end; end; local function NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_glownej=UchwytNazwyPrzestrzeniNazw(""); return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu); end; local function TranslacjaNieBazowejPrzestrzeniNazw(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=UchwytNazwyPrzestrzeniNazw(tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else return nil; end; else local uchwyt_przestrzeni_nazw=UchwytNazwyPrzestrzeniNazw((nazwa)and nazwa or ""); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(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 DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else if(czy_istnieje)then return nil; else return OperacjeKreskaPoziomaDolna(myslnik,nazwa); end; end; end; end; end; local function TranslacjaNazwyPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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=TranslacjaNieBazowejPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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 NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu); else return TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje); end; else return NazwaPrzestrzeniNazwBazowa(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) ---- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; ---- 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=UchwytNazwyPrzestrzeniNazw(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=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw) if(uchwyt)then return uchwyt_przestrzeni_nazw2;end; if((uchwyt_przestrzeni_nazw2)and(uchwyt_przestrzeni_nazw2.id))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=ZnajdowanieSkojarzonychPrzestrzeniNazw(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_wraz_z_ich_opisem_wedle_danych_stron; local uchwyt=m.Np{["nazwa"]=nazwa, ["dyskusja"]=((dyskusja)and "tak" or ""), ["przedmiotowa"]=((przedmiotowa)and "tak" or ""), ["uchwyt"]="tak", }; if(uchwyt)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(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)"; elseif((uchwyt.canonicalName=="Project")and(nazwij_projektem))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Projekt"; elseif((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Dyskusja projektu"; 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=TranslacjaNazwyPrzestrzeniNazw(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 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 awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie); local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna); local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]); local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt); local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ---- 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="tak",["wynik błędu nietekstowy"]="tak",} if(not wartosc_kanoniczna)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; local wartosc_oczekiwana=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"]=po_polsku,["awaryjnie"]=awaryjnie,["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,}; if(not wartosc_oczekiwana)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; wartosc_oczekiwana=tostring(wartosc_oczekiwana); local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron; 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 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 local pos={"w","Pomoc:Przestrzeń nazw"}; local strona2=pos[2]; local klucz_projektu2=pos[1]; 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 klucz_projektu=pos[1]; kod_jezyka=nil; kod_projektu=nil; return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},}; end; 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.charakterystyczne_przestrzenie_nazw; 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.tablica_lokalne_lingwistyczne_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.podstawowe_przestrzenie_nazw; 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 num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$"); if(num)then local nazwa_kan; if(id)then nazwa_kan=m.Np{["nazwa"]=num,["id"]="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; 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)then return nazwa_kan;end; nazwa=nazwa_kan; 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 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; elseif ((name~="")and (por_prze(name.." talk"))) or((name=="")and(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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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(name); end; else return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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.." talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; if awaryjnie then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)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; 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; 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 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"] or {projekt, projekt.." talk"}; local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"]; local function Zwracanie(pos1,pos2,name,numer) if((po_polsku)and(pos1))then local pos=name and (pos1[name] or {})[numer] or (not name and pos1[numer]); if(pos)then return wyswietlana_nazwa(pos); end; end; local pos=pos2[numer]; return wyswietlana_nazwa(pos); end; if(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)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 por_prze(name.." 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,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(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 ((name~="")and (por_prze(name.." talk"))) or ((name=="")and (por_prze("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 then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then if por_prze("")then return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),}; end; 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(np~="Wikijunior"))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; 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 przypadek=PobierzParametr("przypadek"); ----- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ----- 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_kody_projektu_wraz_z_ich_nazwami_stron; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablica_aliasowe_kody_projektu=wiki_interwiki_modul.tablica_aliasowe_kody_projektu; local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; local aliasy=tablica_aliasowe_kody_projektu[url]; local projekt=nil; local nazwa_alternatywna; for kod,_ in pairs(aliasy)do local __projekt=lista_projektow[kod]; local czy_table_projekt=parametry_modul.TypeTable(__projekt); if(czy_table_projekt)then projekt=__projekt[1]; else projekt=__projekt; end; if(__projekt)then nazwa_alternatywna=function() local przypadek=parametry_modul.CzyTak(przypadek) and przypadek or nil; local nazwa=(czy_table_projekt and (przypadek and (__projekt[przypadek] or __projekt["mianownik"]) or __projekt[1]) or __projekt); return przypadek and nazwa or nil; end; 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 (nazwa_alternatywna and nazwa_alternatywna() or nil) 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,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.n)then return tabela_nazw.namespace; else local namespace=tabela_nazw.namespace; namespace=mw.ustring.gsub(namespace,"[%s_]+"," "); tabela_nazw.namespace=namespace; tabela_nazw.n=true; return namespace; end; end; local function NazwyNamespace(namespace,pagename,p,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.n=true; tabela_nazw.pagename=pagename; tabela_nazw.p=p if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then NazwyNamespace("","",true,czy_biezaca_wiki); return ""; end; local namespace= mw.ustring.gsub(title.nsText,"_+"," "); NazwyNamespace(namespace,title.text,false,czy_biezaca_wiki); return namespace; elseif((pelna_nazwa)and(pelna_nazwa==""))then NazwyNamespace("","",true,czy_biezaca_wiki); 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,pagename=mw.ustring.match(strona,"^[%s_]*([^:]+)[%s_]*:[%s_]*(.+)[%s_]*$"); if(not np)then NazwyNamespace("",strona,false,czy_biezaca_wiki); return ""; end; NazwyNamespace(np,pagename,false,czy_biezaca_wiki); return np; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_strony=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_]*(.-)[%s_]*$"); if(not nazwa_przestrzeni)then NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")then NazwyNamespace(nstext,nazwa_strony,false,czy_biezaca_wiki); return nstext; else if(nazwa_przestrzeni~="")then pelna_nazwa=nazwa_strony; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; end; m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; else if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; end; end; m["PRZESTRZEŃDYSKUSJI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"}; tabela_nazw.dyskusja=dyskusja; return dyskusja; else if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.dyskusja=dyskusja; return dyskusja; end; end; m.NAZWASTRONY = function(frame,tabela_nazw,czy_wiki) if(tabela_nazw)then if((tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.p)then return tabela_nazw.pagename; else local pagename=tabela_nazw.pagename; pagename=mw.ustring.gsub(pagename,"^[:%s_]+",""); pagename=mw.ustring.gsub(pagename,"[%s_]+$",""); pagename=mw.ustring.gsub(pagename,"[%s_]+"," "); pagename=mw.getContentLanguage():ucfirst(pagename); tabela_nazw.pagename=pagename; tabela_nazw.p=true; return pagename; end; end end; local function NazwyPagename(namespace,pagename,n,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.pagename=pagename; tabela_nazw.p=true; tabela_nazw.n=n; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; local function M(pagename) if(tabela_nazw)then if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then M(""); NazwyPagename("","",true,czy_biezaca_wiki); return ""; end; local ns=title.nsText; local pagename=mw.ustring.gsub(title.text,"[%s_]+"," "); M(pagename); NazwyPagename(ns,pagename,false,czy_biezaca_wiki); return pagename; elseif((pelna_nazwa)and(pelna_nazwa==""))then M(""); NazwyPagename("","",true,czy_biezaca_wiki); 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 ns,nazwa_strony=mw.ustring.match(strona,"^%s*([^:]+)%s*:%s*(.*[^%s])%s*$"); if(not nazwa_strony)then M(strona); local strona=mw.getContentLanguage():ucfirst(strona); NazwyPagename("",strona,true,czy_biezaca_wiki); return strona; end; M(nazwa_strony); nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony); NazwyPagename(ns,nazwa_strony,true,czy_biezaca_wiki); return nazwa_strony; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")or((nstext=="")and(nazwa_przestrzeni==""))then --local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.-)[%s_]*$"); if(not nazwa_jednostki)then nazwa_jednostki="";end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," "); M(nazwa_jednostki); local pagename=mw.getContentLanguage():ucfirst(nazwa_jednostki); NazwyPagename(nstext,pagename,true,czy_biezaca_wiki); return pagename; else pelna_nazwa=nazwa_jednostki; end; 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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; end; end; end; m.BAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.base))then return tabela_nazw.base; end; local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$"); local base=(base)and base or nazwa2; if(tabela_nazw)then tabela_nazw.base=base; end; return base; end; m["PEŁNANAZWASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["PEŁNABAZOWANAZWASTRONY"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWABAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.BAZOWANAZWASTRONYDYSKUSJI=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWANAZWASTRONY = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.NAZWASTRONYDYSKUSJI = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["CzęśćTytułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tytul=PobierzParametr(1); local ktora=PobierzParametr(2); ktora=tonumber(ktora) or 1; 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,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookname)then return tabela_nazw.bookname; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw; if(not tabela_nazw.przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); tabela_nazw.przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.przedmiotowa; end; local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; else if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=3,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; end; m["PEŁNANAZWAKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki; end; m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.article)then return tabela_nazw.article; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; else if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; 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; tabela_nazw.article=nazw or ""; return tabela_nazw.article; end; m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); if(artykul=="")then local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_ksiazki; else return artykul; end; end; m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul; end; m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookspace)then return tabela_nazw.bookspace; end; 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_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); 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 tabela_nazw.bookspace=""; return ""; elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then local nazwa_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; 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=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; return ""; end; else tabela_nazw.bookspace=""; return ""; end; end; m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAPRZESTRZENIKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_ksiazki~="") and ":" or "")..nazwa_ksiazki; end; m.NAZWASUBPODSTRONY = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa") or PobierzParametr(1); nazwa=nazwa or ""; local subpage=mw.ustring.match(nazwa,"[^/]*$"); return subpage; end; m.NAZWASUBSTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.subpage))then return tabela_nazw.subpage; end; local pelna_nazwa_strony2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local subpage=m.NAZWASUBPODSTRONY(pelna_nazwa_strony2); if(tabela_nazw)then tabela_nazw.subpage=subpage; end; return subpage; end; m["SUBNAZWAKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.book))then return tabela_nazw.book; end; local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local book=mw.ustring.match(nazwa_ksiazki,"[^/]*$"); if(tabela_nazw)then tabela_nazw.book=book; end; return book; end; m.NAZWAKORZENIASTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.root))then return tabela_nazw.root; end; local nazwa_strony=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local root=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; if(tabela_nazw)then tabela_nazw.root=root; end; return root; end; m["PEŁNANAZWAKORZENIASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_korzenia_strony=m.NAZWAKORZENIASTRONY(frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_przestrzeni~="")and ":" or "")..nazwa_korzenia_strony; end; m["NazwaModułu"]=function(...) local args={ ... }; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa_przestrzeni=PobierzParametr(1); local nazwa_przestrzeni_ksiazki=PobierzParametr(2); local nazwa_ksiazki=PobierzParametr(3); local nazwa_artykulu=PobierzParametr(4); return (((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "")); end; return m; say9850uzhuko45cepwb5zhqvq64t5b 552121 552109 2026-08-17T10:04:28Z Persino 2851 552121 Scribunto text/plain local m={}; local function WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_niekanoniczna) local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_kanonicznych)do if(nazwa_niekanoniczna==mw.ustring.lower(nazwa_niekanoniczna_przestrzeni_nazw))then return mw.site.namespaces[nazwa_kanoniczna_przestrzeni_nazw]; end; end; end; local function UchwytNazwyPrzestrzeniNazw(nazwa_przestrzeni_nazw) local uchwyt_przestrzeni_nazw; local parametry_modul=require("Module:Parametry"); if(parametry_modul.TypeString(nazwa_przestrzeni_nazw))then nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); nazwa_przestrzeni_nazw=mw.ustring.lower(nazwa_przestrzeni_nazw); uchwyt_przestrzeni_nazw=WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_przestrzeni_nazw) or mw.site.namespaces[nazwa_przestrzeni_nazw]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw]; end; if(uchwyt_przestrzeni_nazw)then return uchwyt_przestrzeni_nazw; end; if(parametry_modul.TypeNumber(nazwa_przestrzeni_nazw))then return nil;end; local nazwy_kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna,nazwa_niekanoniczna in pairs(nazwy_kanoniczne_modul.inne_przestrzenie_nazw)do local nazwa_kanoniczna_temp=mw.ustring.lower(nazwa_kanoniczna); local nazwa_niekanoniczna_temp=mw.ustring.lower(nazwa_niekanoniczna); if((nazwa_przestrzeni_nazw==nazwa_kanoniczna_temp)or(nazwa_przestrzeni_nazw==nazwa_niekanoniczna_temp))then local uchwyt={}; uchwyt.name=nazwa_niekanoniczna; uchwyt.canonicalName=nazwa_kanoniczna; local talk=mw.ustring.match(nazwa_kanoniczna_temp,"%s+talk$") and true or false; uchwyt.isTalk=talk; uchwyt.isSubject=not talk; if(not talk)then uchwyt.subject=uchwyt; local uchwyt_talk={}; local nazwa_kanoniczna=nazwa_kanoniczna.." talk"; local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_talk.name=nazwa_niekanoniczna; uchwyt_talk.canonicalName=nazwa_kanoniczna; uchwyt_talk.isTalk=true; uchwyt_talk.isSubject=false; uchwyt_talk.talk=uchwyt_talk; uchwyt_talk.subject=uchwyt; uchwyt.talk=uchwyt_talk; else uchwyt.talk=uchwyt; local uchwyt_subject={}; local nazwa_kanoniczna=mw.ustring.gsub(nazwa_kanoniczna,"%s+talk$",""); local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_subject.name=nazwa_niekanoniczna; uchwyt_subject.canonicalName=nazwa_kanoniczna; uchwyt_subject.isTalk=false; uchwyt_subject.isSubject=true; uchwyt_subject.talk=uchwyt; uchwyt_subject.subject=uchwyt_subject; uchwyt.subject=uchwyt_subject; end; return uchwyt; end; end; return nil; end; local function ZnajdowanieSkojarzonychPrzestrzeniNazw(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 WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); 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 kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_niekanonicznych)do if(uchwyt_przestrzeni_nazw.name==nazwa_niekanoniczna_przestrzeni_nazw)then return nazwa_kanoniczna_przestrzeni_nazw; end; end; return uchwyt_przestrzeni_nazw.canonicalName; else return nil; end; end; local function WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); if(uchwyt_przestrzeni_nazw)then if((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))then return "Projekt"; elseif((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then return "Dyskusja projektu"; end; return uchwyt_przestrzeni_nazw.name; end; return nil; end; local function OperacjeKreskaPoziomaDolna(myslnik,nazwa) local parametry_modul=require("Module:Parametry"); if(myslnik)then nazwa=mw.ustring.gsub(nazwa,"[%s_]+","_"); else nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); end; return mw.getContentLanguage():ucfirst(nazwa); end; local 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.aliasy_znanych_nazw_niekanonicznych)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=UchwytNazwyPrzestrzeniNazw(nazwa_niekanoniczna_nazwy_przestrzeni_nazw); return uchwyt_przestrzeni_nazw; end; end; end; return nil; end; local function DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_nazw2=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw); if(uchwyt_przestrzeni_nazw2)then if(kanoniczna)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); if(kanoniczna_nazwa)then return OperacjeKreskaPoziomaDolna(myslnik,kanoniczna_nazwa); else return nil; end; else local nazwa_niekanoniczna=WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); return OperacjeKreskaPoziomaDolna(myslnik,nazwa_niekanoniczna); end; else return nil; end; end; local function NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_glownej=UchwytNazwyPrzestrzeniNazw(""); return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu); end; local function TranslacjaNieBazowejPrzestrzeniNazw(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=UchwytNazwyPrzestrzeniNazw(tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else return nil; end; else local uchwyt_przestrzeni_nazw=UchwytNazwyPrzestrzeniNazw((nazwa)and nazwa or ""); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(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 DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else if(czy_istnieje)then return nil; else return OperacjeKreskaPoziomaDolna(myslnik,nazwa); end; end; end; end; end; local function TranslacjaNazwyPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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=TranslacjaNieBazowejPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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 NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu); else return TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje); end; else return NazwaPrzestrzeniNazwBazowa(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) ---- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; ---- 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=UchwytNazwyPrzestrzeniNazw(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=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw) if(uchwyt)then return uchwyt_przestrzeni_nazw2;end; if((uchwyt_przestrzeni_nazw2)and(uchwyt_przestrzeni_nazw2.id))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=ZnajdowanieSkojarzonychPrzestrzeniNazw(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_wraz_z_ich_opisem_wedle_danych_stron; local uchwyt=m.Np{["nazwa"]=nazwa, ["dyskusja"]=((dyskusja)and "tak" or ""), ["przedmiotowa"]=((przedmiotowa)and "tak" or ""), ["uchwyt"]="tak", }; if(uchwyt)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(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)"; elseif((uchwyt.canonicalName=="Project")and(nazwij_projektem))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Projekt"; elseif((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Dyskusja projektu"; 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=TranslacjaNazwyPrzestrzeniNazw(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 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 awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie); local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna); local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]); local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt); local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ---- 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="tak",["wynik błędu nietekstowy"]="tak",} if(not wartosc_kanoniczna)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; local wartosc_oczekiwana=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"]=po_polsku,["awaryjnie"]=awaryjnie,["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,}; if(not wartosc_oczekiwana)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; wartosc_oczekiwana=tostring(wartosc_oczekiwana); local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron; 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 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 local pos={"w","Pomoc:Przestrzeń nazw"}; local strona2=pos[2]; local klucz_projektu2=pos[1]; 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 klucz_projektu=pos[1]; kod_jezyka=nil; kod_projektu=nil; return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},}; end; 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.charakterystyczne_przestrzenie_nazw; 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.tablica_lokalne_lingwistyczne_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.podstawowe_przestrzenie_nazw; 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 num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$"); if(num)then local nazwa_kan; if(id)then nazwa_kan=m.Np{["nazwa"]=num,["id"]="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; 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)then return nazwa_kan;end; nazwa=nazwa_kan; 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 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; elseif ((name~="")and (por_prze(name.." talk"))) or((name=="")and(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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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(name); end; else return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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.." talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; if awaryjnie then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)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; 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; 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 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"] or {projekt, projekt.." talk"}; local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"]; local function Zwracanie(pos1,pos2,name,numer) if((po_polsku)and(pos1))then local pos=name and (pos1[name] or {})[numer] or (not name and pos1[numer]); if(pos)then return wyswietlana_nazwa(pos); end; end; local pos=pos2[numer]; return wyswietlana_nazwa(pos); end; if(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)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 por_prze(name.." 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,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(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 ((name~="")and (por_prze(name.." talk"))) or ((name=="")and (por_prze("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 then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then if por_prze("")then return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),}; end; 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(np~="Wikijunior"))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; 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("n") or PobierzParametr(1); local link=PobierzParametr("link") or PobierzParametr("l"); local za=PobierzParametr("za") or PobierzParametr("z"); local po=PobierzParametr("po") or PobierzParametr("p"); local wikipedia=PobierzParametr("wikipedia") or PobierzParametr("w"); local klucz_projektu=PobierzParametr("klucz projektu") or PobierzParametr("k"); local kod_jezyka=PobierzParametr("kod języka") or PobierzParametr("kj"); local kod_projektu=PobierzParametr("kod projektu") or PobierzParametr("kp"); local przypadek=PobierzParametr("przypadek") or PobierzParametr("pk"); ----- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ----- local w_jezyku_wiki=PobierzParametr("w języku wiki") or PobierzParametr("jw"); local bez_znacznikow=PobierzParametr("bez znaczników") or PobierzParametr("bz"); local bez_przetwarzania=PobierzParametr("bez przetwarzania") or PobierzParametr("bp"); 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_kody_projektu_wraz_z_ich_nazwami_stron; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablica_aliasowe_kody_projektu=wiki_interwiki_modul.tablica_aliasowe_kody_projektu; local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; local aliasy=tablica_aliasowe_kody_projektu[url]; local projekt=nil; local nazwa_alternatywna; for kod,_ in pairs(aliasy)do local __projekt=lista_projektow[kod]; local czy_table_projekt=parametry_modul.TypeTable(__projekt); if(czy_table_projekt)then projekt=__projekt[1]; else projekt=__projekt; end; if(__projekt)then nazwa_alternatywna=function() local przypadek=parametry_modul.CzyTak(przypadek) and przypadek or nil; local nazwa=(czy_table_projekt and (przypadek and (__projekt[przypadek] or __projekt["mianownik"]) or __projekt[1]) or __projekt); return przypadek and nazwa or nil; end; 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 (nazwa_alternatywna and nazwa_alternatywna() or nil) 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,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.n)then return tabela_nazw.namespace; else local namespace=tabela_nazw.namespace; namespace=mw.ustring.gsub(namespace,"[%s_]+"," "); tabela_nazw.namespace=namespace; tabela_nazw.n=true; return namespace; end; end; local function NazwyNamespace(namespace,pagename,p,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.n=true; tabela_nazw.pagename=pagename; tabela_nazw.p=p if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then NazwyNamespace("","",true,czy_biezaca_wiki); return ""; end; local namespace= mw.ustring.gsub(title.nsText,"_+"," "); NazwyNamespace(namespace,title.text,false,czy_biezaca_wiki); return namespace; elseif((pelna_nazwa)and(pelna_nazwa==""))then NazwyNamespace("","",true,czy_biezaca_wiki); 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,pagename=mw.ustring.match(strona,"^[%s_]*([^:]+)[%s_]*:[%s_]*(.+)[%s_]*$"); if(not np)then NazwyNamespace("",strona,false,czy_biezaca_wiki); return ""; end; NazwyNamespace(np,pagename,false,czy_biezaca_wiki); return np; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_strony=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_]*(.-)[%s_]*$"); if(not nazwa_przestrzeni)then NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")then NazwyNamespace(nstext,nazwa_strony,false,czy_biezaca_wiki); return nstext; else if(nazwa_przestrzeni~="")then pelna_nazwa=nazwa_strony; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; end; m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; else if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; end; end; m["PRZESTRZEŃDYSKUSJI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"}; tabela_nazw.dyskusja=dyskusja; return dyskusja; else if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.dyskusja=dyskusja; return dyskusja; end; end; m.NAZWASTRONY = function(frame,tabela_nazw,czy_wiki) if(tabela_nazw)then if((tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.p)then return tabela_nazw.pagename; else local pagename=tabela_nazw.pagename; pagename=mw.ustring.gsub(pagename,"^[:%s_]+",""); pagename=mw.ustring.gsub(pagename,"[%s_]+$",""); pagename=mw.ustring.gsub(pagename,"[%s_]+"," "); pagename=mw.getContentLanguage():ucfirst(pagename); tabela_nazw.pagename=pagename; tabela_nazw.p=true; return pagename; end; end end; local function NazwyPagename(namespace,pagename,n,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.pagename=pagename; tabela_nazw.p=true; tabela_nazw.n=n; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; local function M(pagename) if(tabela_nazw)then if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then M(""); NazwyPagename("","",true,czy_biezaca_wiki); return ""; end; local ns=title.nsText; local pagename=mw.ustring.gsub(title.text,"[%s_]+"," "); M(pagename); NazwyPagename(ns,pagename,false,czy_biezaca_wiki); return pagename; elseif((pelna_nazwa)and(pelna_nazwa==""))then M(""); NazwyPagename("","",true,czy_biezaca_wiki); 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 ns,nazwa_strony=mw.ustring.match(strona,"^%s*([^:]+)%s*:%s*(.*[^%s])%s*$"); if(not nazwa_strony)then M(strona); local strona=mw.getContentLanguage():ucfirst(strona); NazwyPagename("",strona,true,czy_biezaca_wiki); return strona; end; M(nazwa_strony); nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony); NazwyPagename(ns,nazwa_strony,true,czy_biezaca_wiki); return nazwa_strony; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")or((nstext=="")and(nazwa_przestrzeni==""))then --local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.-)[%s_]*$"); if(not nazwa_jednostki)then nazwa_jednostki="";end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," "); M(nazwa_jednostki); local pagename=mw.getContentLanguage():ucfirst(nazwa_jednostki); NazwyPagename(nstext,pagename,true,czy_biezaca_wiki); return pagename; else pelna_nazwa=nazwa_jednostki; end; 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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; end; end; end; m.BAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.base))then return tabela_nazw.base; end; local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$"); local base=(base)and base or nazwa2; if(tabela_nazw)then tabela_nazw.base=base; end; return base; end; m["PEŁNANAZWASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["PEŁNABAZOWANAZWASTRONY"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWABAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.BAZOWANAZWASTRONYDYSKUSJI=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWANAZWASTRONY = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.NAZWASTRONYDYSKUSJI = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["CzęśćTytułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tytul=PobierzParametr(1); local ktora=PobierzParametr(2); ktora=tonumber(ktora) or 1; 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,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookname)then return tabela_nazw.bookname; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw; if(not tabela_nazw.przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); tabela_nazw.przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.przedmiotowa; end; local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; else if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=3,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; end; m["PEŁNANAZWAKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki; end; m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.article)then return tabela_nazw.article; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; else if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; 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; tabela_nazw.article=nazw or ""; return tabela_nazw.article; end; m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); if(artykul=="")then local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_ksiazki; else return artykul; end; end; m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul; end; m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookspace)then return tabela_nazw.bookspace; end; 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_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); 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 tabela_nazw.bookspace=""; return ""; elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then local nazwa_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; 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=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; return ""; end; else tabela_nazw.bookspace=""; return ""; end; end; m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAPRZESTRZENIKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_ksiazki~="") and ":" or "")..nazwa_ksiazki; end; m.NAZWASUBPODSTRONY = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa") or PobierzParametr(1); nazwa=nazwa or ""; local subpage=mw.ustring.match(nazwa,"[^/]*$"); return subpage; end; m.NAZWASUBSTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.subpage))then return tabela_nazw.subpage; end; local pelna_nazwa_strony2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local subpage=m.NAZWASUBPODSTRONY(pelna_nazwa_strony2); if(tabela_nazw)then tabela_nazw.subpage=subpage; end; return subpage; end; m["SUBNAZWAKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.book))then return tabela_nazw.book; end; local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local book=mw.ustring.match(nazwa_ksiazki,"[^/]*$"); if(tabela_nazw)then tabela_nazw.book=book; end; return book; end; m.NAZWAKORZENIASTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.root))then return tabela_nazw.root; end; local nazwa_strony=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local root=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; if(tabela_nazw)then tabela_nazw.root=root; end; return root; end; m["PEŁNANAZWAKORZENIASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_korzenia_strony=m.NAZWAKORZENIASTRONY(frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_przestrzeni~="")and ":" or "")..nazwa_korzenia_strony; end; m["NazwaModułu"]=function(...) local args={ ... }; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa_przestrzeni=PobierzParametr(1); local nazwa_przestrzeni_ksiazki=PobierzParametr(2); local nazwa_ksiazki=PobierzParametr(3); local nazwa_artykulu=PobierzParametr(4); return (((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "")); end; return m; 1qsskjmzqypnetzptvwl32eeesxq7mm 552127 552121 2026-08-17T11:04:54Z Persino 2851 552127 Scribunto text/plain local m={}; local function WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_niekanoniczna) local kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_kanonicznych)do if(nazwa_niekanoniczna==mw.ustring.lower(nazwa_niekanoniczna_przestrzeni_nazw))then return mw.site.namespaces[nazwa_kanoniczna_przestrzeni_nazw]; end; end; end; local function UchwytNazwyPrzestrzeniNazw(nazwa_przestrzeni_nazw) local uchwyt_przestrzeni_nazw; local parametry_modul=require("Module:Parametry"); if(parametry_modul.TypeString(nazwa_przestrzeni_nazw))then nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw); nazwa_przestrzeni_nazw=mw.ustring.lower(nazwa_przestrzeni_nazw); uchwyt_przestrzeni_nazw=WyznaczanieUchwytuNieznanejNazwyNiekanonicznej(nazwa_przestrzeni_nazw) or mw.site.namespaces[nazwa_przestrzeni_nazw]; else uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw]; end; if(uchwyt_przestrzeni_nazw)then return uchwyt_przestrzeni_nazw; end; if(parametry_modul.TypeNumber(nazwa_przestrzeni_nazw))then return nil;end; local nazwy_kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna,nazwa_niekanoniczna in pairs(nazwy_kanoniczne_modul.inne_przestrzenie_nazw)do local nazwa_kanoniczna_temp=mw.ustring.lower(nazwa_kanoniczna); local nazwa_niekanoniczna_temp=mw.ustring.lower(nazwa_niekanoniczna); if((nazwa_przestrzeni_nazw==nazwa_kanoniczna_temp)or(nazwa_przestrzeni_nazw==nazwa_niekanoniczna_temp))then local uchwyt={}; uchwyt.name=nazwa_niekanoniczna; uchwyt.canonicalName=nazwa_kanoniczna; local talk=mw.ustring.match(nazwa_kanoniczna_temp,"%s+talk$") and true or false; uchwyt.isTalk=talk; uchwyt.isSubject=not talk; if(not talk)then uchwyt.subject=uchwyt; local uchwyt_talk={}; local nazwa_kanoniczna=nazwa_kanoniczna.." talk"; local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_talk.name=nazwa_niekanoniczna; uchwyt_talk.canonicalName=nazwa_kanoniczna; uchwyt_talk.isTalk=true; uchwyt_talk.isSubject=false; uchwyt_talk.talk=uchwyt_talk; uchwyt_talk.subject=uchwyt; uchwyt.talk=uchwyt_talk; else uchwyt.talk=uchwyt; local uchwyt_subject={}; local nazwa_kanoniczna=mw.ustring.gsub(nazwa_kanoniczna,"%s+talk$",""); local nazwa_niekanoniczna=nazwy_kanoniczne_modul.inne_przestrzenie_nazw[nazwa_kanoniczna]; uchwyt_subject.name=nazwa_niekanoniczna; uchwyt_subject.canonicalName=nazwa_kanoniczna; uchwyt_subject.isTalk=false; uchwyt_subject.isSubject=true; uchwyt_subject.talk=uchwyt; uchwyt_subject.subject=uchwyt_subject; uchwyt.subject=uchwyt_subject; end; return uchwyt; end; end; return nil; end; local function ZnajdowanieSkojarzonychPrzestrzeniNazw(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 WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); 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 kanoniczne_modul=mw.loadData("Module:Nazwy/kanoniczne"); for nazwa_kanoniczna_przestrzeni_nazw,nazwa_niekanoniczna_przestrzeni_nazw in pairs(kanoniczne_modul.aliasy_znanych_nazw_niekanonicznych)do if(uchwyt_przestrzeni_nazw.name==nazwa_niekanoniczna_przestrzeni_nazw)then return nazwa_kanoniczna_przestrzeni_nazw; end; end; return uchwyt_przestrzeni_nazw.canonicalName; else return nil; end; end; local function WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local parametry_modul=require("Module:Parametry"); if(uchwyt_przestrzeni_nazw)then if((uchwyt_przestrzeni_nazw.canonicalName=="Project")and(nazwij_projektem))then return "Projekt"; elseif((uchwyt_przestrzeni_nazw.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then return "Dyskusja projektu"; end; return uchwyt_przestrzeni_nazw.name; end; return nil; end; local function OperacjeKreskaPoziomaDolna(myslnik,nazwa) local parametry_modul=require("Module:Parametry"); if(myslnik)then nazwa=mw.ustring.gsub(nazwa,"[%s_]+","_"); else nazwa=mw.ustring.gsub(nazwa,"[%s_]+"," "); end; return mw.getContentLanguage():ucfirst(nazwa); end; local 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.aliasy_znanych_nazw_niekanonicznych)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=UchwytNazwyPrzestrzeniNazw(nazwa_niekanoniczna_nazwy_przestrzeni_nazw); return uchwyt_przestrzeni_nazw; end; end; end; return nil; end; local function DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_nazw2=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw); if(uchwyt_przestrzeni_nazw2)then if(kanoniczna)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); if(kanoniczna_nazwa)then return OperacjeKreskaPoziomaDolna(myslnik,kanoniczna_nazwa); else return nil; end; else local nazwa_niekanoniczna=WyznaczanieNiekanonicznejNazwy(uchwyt_przestrzeni_nazw2,nazwij_projektem,nazwij_dyskusja_projektu); return OperacjeKreskaPoziomaDolna(myslnik,nazwa_niekanoniczna); end; else return nil; end; end; local function NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu) local uchwyt_przestrzeni_glownej=UchwytNazwyPrzestrzeniNazw(""); return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_glownej,nazwij_projektem,nazwij_dyskusja_projektu); end; local function TranslacjaNieBazowejPrzestrzeniNazw(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=UchwytNazwyPrzestrzeniNazw(tonumber(mw.ustring.match(nazwa,"^%s*([%+%-]?%d+)%s*$"))); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else return nil; end; else local uchwyt_przestrzeni_nazw=UchwytNazwyPrzestrzeniNazw((nazwa)and nazwa or ""); if(uchwyt_przestrzeni_nazw)then return DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(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 DalszeOperacjeTranslacjiNazwyPrzestrzeniNazw(przedmiotowa,dyskusja,kanoniczna,myslnik,uchwyt_przestrzeni_nazw,nazwij_projektem,nazwij_dyskusja_projektu); else if(czy_istnieje)then return nil; else return OperacjeKreskaPoziomaDolna(myslnik,nazwa); end; end; end; end; end; local function TranslacjaNazwyPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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=TranslacjaNieBazowejPrzestrzeniNazw(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=NazwaPrzestrzeniNazwBazowa(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 NazwaPrzestrzeniNazwBazowa(przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu); else return TranslacjaNieBazowejPrzestrzeniNazw(nazwa,przedmiotowa,dyskusja,kanoniczna,myslnik,nazwij_projektem,nazwij_dyskusja_projektu,czy_istnieje); end; else return NazwaPrzestrzeniNazwBazowa(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) ---- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; ---- 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=UchwytNazwyPrzestrzeniNazw(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=ZnajdowanieSkojarzonychPrzestrzeniNazw(przedmiotowa, dyskusja,uchwyt_przestrzeni_nazw) if(uchwyt)then return uchwyt_przestrzeni_nazw2;end; if((uchwyt_przestrzeni_nazw2)and(uchwyt_przestrzeni_nazw2.id))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=ZnajdowanieSkojarzonychPrzestrzeniNazw(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_wraz_z_ich_opisem_wedle_danych_stron; local uchwyt=m.Np{["nazwa"]=nazwa, ["dyskusja"]=((dyskusja)and "tak" or ""), ["przedmiotowa"]=((przedmiotowa)and "tak" or ""), ["uchwyt"]="tak", }; if(uchwyt)then local kanoniczna_nazwa=WyznaczanieKanonicznejNazwy(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)"; elseif((uchwyt.canonicalName=="Project")and(nazwij_projektem))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Projekt"; elseif((uchwyt.canonicalName=="Project talk")and(nazwij_dyskusja_projektu))then uzyskana_przetlumaczona_nazwa_przestrzeni_nazw="Dyskusja projektu"; 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=TranslacjaNazwyPrzestrzeniNazw(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 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 awaryjnie=parametry_modul["CzyTakCiąg"](args.awaryjnie); local kanoniczna=parametry_modul["CzyTakCiąg"](args.kanoniczna); local z_myslnikami_dolnymi=parametry_modul["CzyTakCiąg"](args["z myślnikami dolnymi"]); local uchwyt=parametry_modul["CzyTakCiąg"](args.uchwyt); local po_polsku=parametry_modul["CzyTakCiąg"](args["po polsku"]); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ---- 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="tak",["wynik błędu nietekstowy"]="tak",} if(not wartosc_kanoniczna)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; local wartosc_oczekiwana=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"]=po_polsku,["awaryjnie"]=awaryjnie,["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,}; if(not wartosc_oczekiwana)then if(wynik_bledu_nietekstowy)then return;else return "(błąd)";end; end; wartosc_oczekiwana=tostring(wartosc_oczekiwana); local tabela_przestrzenii_nazw=mw.loadData("Module:Nazwy/przestrzenie").tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron; 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 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 local pos={"w","Pomoc:Przestrzeń nazw"}; local strona2=pos[2]; local klucz_projektu2=pos[1]; 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 klucz_projektu=pos[1]; kod_jezyka=nil; kod_projektu=nil; return require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona2,["nazwa"]=wartosc_oczekiwana,["bez znaczników"]=args["bez znaczników"],["bez przetwarzania"]=args["bez przetwarzania"],},}; end; 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.charakterystyczne_przestrzenie_nazw; 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.tablica_lokalne_lingwistyczne_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.podstawowe_przestrzenie_nazw; 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 num=mw.ustring.match(nazwa,"^%s*(%d+)%s*$"); if(num)then local nazwa_kan; if(id)then nazwa_kan=m.Np{["nazwa"]=num,["id"]="tak",przedmiotowa=przedmiotowa,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_kan=m.Np{["nazwa"]=num,["kanoniczna"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; 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)then return nazwa_kan;end; nazwa=nazwa_kan; 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 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; elseif ((name~="")and (por_prze(name.." talk"))) or((name=="")and(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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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~="")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_kanoniczna(name,wyswietlana); end; else return m.Np{nazwa=((name~="")and(name.." talk") or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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(name); end; else return m.Np{nazwa=((name~="")and name.." talk" or "Talk"),przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["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.." 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.." talk",przedmiotowa=przedmiotowa,id="tak",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; end; end; local 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",["istnieje"]=((czy_istnieje)and "tak" or ""),["wynik błędu nietekstowy"]=((wynik_bledu_nietekstowy)and "tak" or ""),}; end; end; end; if awaryjnie then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)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; 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; 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 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"] or {projekt, projekt.." talk"}; local projekt_jezyk_pl=tabnp_jezyk_pl and tabnp_jezyk_pl["Project"]; local function Zwracanie(pos1,pos2,name,numer) if((po_polsku)and(pos1))then local pos=name and (pos1[name] or {})[numer] or (not name and pos1[numer]); if(pos)then return wyswietlana_nazwa(pos); end; end; local pos=pos2[numer]; return wyswietlana_nazwa(pos); end; if(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)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 por_prze(name.." 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,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(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 ((name~="")and (por_prze(name.." talk"))) or ((name=="")and (por_prze("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 then if((kod_jezyka~=kod_jezyka_pl)and(kod_jezyka~="en"))and(jezykowe_projekty)then if por_prze("")then return m.Np{nazwa="",dyskusja=dyskusja,["wyświetlana"]=((wyswietlana)and "tak" or ""),kanoniczna=((po_polsku)and "" or "tak"),}; end; 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(np~="Wikijunior"))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; 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("n") or PobierzParametr(1); local link=PobierzParametr("link") or PobierzParametr("l"); local za=PobierzParametr("za") or PobierzParametr("z"); local po=PobierzParametr("po") or PobierzParametr("p"); local wikipedia=PobierzParametr("wikipedia") or PobierzParametr("w"); local klucz_projektu=PobierzParametr("klucz projektu") or PobierzParametr("k"); local kod_jezyka=PobierzParametr("kod języka") or PobierzParametr("kj"); local kod_projektu=PobierzParametr("kod projektu") or PobierzParametr("kp"); local przypadek=PobierzParametr("przypadek") or PobierzParametr("pk"); ----- local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; ----- local w_jezyku_wiki=PobierzParametr("w języku wiki") or PobierzParametr("jw"); local bez_znacznikow=PobierzParametr("bez znaczników") or PobierzParametr("bz"); local bez_przetwarzania=PobierzParametr("bez przetwarzania") or PobierzParametr("bp"); 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 nazwy_przestrzenie_modul=mw.loadData("Module:Nazwy/przestrzenie"); local lista_projektow=nazwy_przestrzenie_modul.lista_kody_projektu_wraz_z_ich_nazwami_stron; local przypadki_skroty_rzeczownikowe=nazwy_przestrzenie_modul.przypadki_odmiany_rzeczownikowe; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local tablica_aliasowe_kody_projektu=wiki_interwiki_modul.tablica_aliasowe_kody_projektu; local interwikimap=wiki_interwiki_modul.interwikimap; local url=interwikimap[kod_projektu]; local aliasy=tablica_aliasowe_kody_projektu[url]; local projekt=nil; local nazwa_alternatywna; for kod,_ in pairs(aliasy)do local __projekt=lista_projektow[kod]; local czy_table_projekt=parametry_modul.TypeTable(__projekt); if(czy_table_projekt)then projekt=__projekt[1]; else projekt=__projekt; end; if(__projekt)then nazwa_alternatywna=function() local przypadek=parametry_modul.CzyTak(przypadek) and przypadek or nil; local nazwa=(czy_table_projekt and (przypadek and (__projekt[przypadki_skroty_rzeczownikowe[przypadek] or przypadek] or __projekt["mianownik"]) or __projekt[1]) or __projekt); return przypadek and nazwa or nil; end; 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 (nazwa_alternatywna and nazwa_alternatywna() or nil) 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,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.n)then return tabela_nazw.namespace; else local namespace=tabela_nazw.namespace; namespace=mw.ustring.gsub(namespace,"[%s_]+"," "); tabela_nazw.namespace=namespace; tabela_nazw.n=true; return namespace; end; end; local function NazwyNamespace(namespace,pagename,p,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.n=true; tabela_nazw.pagename=pagename; tabela_nazw.p=p if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then NazwyNamespace("","",true,czy_biezaca_wiki); return ""; end; local namespace= mw.ustring.gsub(title.nsText,"_+"," "); NazwyNamespace(namespace,title.text,false,czy_biezaca_wiki); return namespace; elseif((pelna_nazwa)and(pelna_nazwa==""))then NazwyNamespace("","",true,czy_biezaca_wiki); 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,pagename=mw.ustring.match(strona,"^[%s_]*([^:]+)[%s_]*:[%s_]*(.+)[%s_]*$"); if(not np)then NazwyNamespace("",strona,false,czy_biezaca_wiki); return ""; end; NazwyNamespace(np,pagename,false,czy_biezaca_wiki); return np; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_strony=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_]*(.-)[%s_]*$"); if(not nazwa_przestrzeni)then NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")then NazwyNamespace(nstext,nazwa_strony,false,czy_biezaca_wiki); return nstext; else if(nazwa_przestrzeni~="")then pelna_nazwa=nazwa_strony; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; else NazwyNamespace("",pelna_nazwa,false,czy_biezaca_wiki); return ""; end; end; end; m["PRZEDMIOTOWAPRZESTRZEŃ"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak"}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; else if(tabela_nazw.przedmiotowa)then return tabela_nazw.przedmiotowa;end; local przedmiotowa=m.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.przedmiotowa=przedmiotowa; return przedmiotowa; end; end; m["PRZESTRZEŃDYSKUSJI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja; end; 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=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak"}; tabela_nazw.dyskusja=dyskusja; return dyskusja; else if(tabela_nazw.dyskusja)then return tabela_nazw.dyskusja;end; local dyskusja=m.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; tabela_nazw.dyskusja=dyskusja; return dyskusja; end; end; m.NAZWASTRONY = function(frame,tabela_nazw,czy_wiki) if(tabela_nazw)then if((tabela_nazw.namespace)and(tabela_nazw.pagename))then if(tabela_nazw.p)then return tabela_nazw.pagename; else local pagename=tabela_nazw.pagename; pagename=mw.ustring.gsub(pagename,"^[:%s_]+",""); pagename=mw.ustring.gsub(pagename,"[%s_]+$",""); pagename=mw.ustring.gsub(pagename,"[%s_]+"," "); pagename=mw.getContentLanguage():ucfirst(pagename); tabela_nazw.pagename=pagename; tabela_nazw.p=true; return pagename; end; end end; local function NazwyPagename(namespace,pagename,n,czy_aktualna_wiki) if(tabela_nazw)then tabela_nazw.namespace=namespace; tabela_nazw.pagename=pagename; tabela_nazw.p=true; tabela_nazw.n=n; tabela_nazw.czy_aktualna_wiki=czy_aktualna_wiki; end; end; local function M(pagename) if(tabela_nazw)then if(tabela_nazw.m==nil)then tabela_nazw.m=mw.ustring.match(pagename,"^[%s_:]*%l")and true or false; end; end; end; 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 bez_zmiany_adresu=PobierzParametr("bez zmiany adresu"); local html_modul=require("Module:Html"); nazwa=nazwa and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(nazwa) or nil; klucz_projektu=klucz_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(klucz_projektu) or nil; kod_jezyka=kod_jezyka and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_jezyka) or nil; kod_projektu=kod_projektu and html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(kod_projektu) or nil; local pelna_nazwa=nazwa; local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((not tabela_nazw)or(tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not pelna_nazwa)then local title=mw.title.getCurrentTitle(); if(not title)then M(""); NazwyPagename("","",true,czy_biezaca_wiki); return ""; end; local ns=title.nsText; local pagename=mw.ustring.gsub(title.text,"[%s_]+"," "); M(pagename); NazwyPagename(ns,pagename,false,czy_biezaca_wiki); return pagename; elseif((pelna_nazwa)and(pelna_nazwa==""))then M(""); NazwyPagename("","",true,czy_biezaca_wiki); 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 ns,nazwa_strony=mw.ustring.match(strona,"^%s*([^:]+)%s*:%s*(.*[^%s])%s*$"); if(not nazwa_strony)then M(strona); local strona=mw.getContentLanguage():ucfirst(strona); NazwyPagename("",strona,true,czy_biezaca_wiki); return strona; end; M(nazwa_strony); nazwa_strony=mw.getContentLanguage():ucfirst(nazwa_strony); NazwyPagename(ns,nazwa_strony,true,czy_biezaca_wiki); return nazwa_strony; end; local html_modul=require("Module:Html"); pelna_nazwa=parametry_modul.CzyTak(bez_zmiany_adresu) and pelna_nazwa or html_modul["NazwaStronyAdresu"](pelna_nazwa,true); while(true)do local nazwa_przestrzeni,nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*([^:]*[^%s_:])[%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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; else nazwa_przestrzeni=mw.ustring.gsub(nazwa_przestrzeni,"[%s_]+"," "); end; local nstext; if(czy_biezaca_wiki)then nstext=m.Np{nazwa=nazwa_przestrzeni,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nstext=m.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 if(nstext~="")or((nstext=="")and(nazwa_przestrzeni==""))then --local nazwa_jednostki=mw.ustring.match(pelna_nazwa,"^[%s_:]*[^:]*[^%s_:][%s_:]*:[%s_:]*(.-)[%s_]*$"); if(not nazwa_jednostki)then nazwa_jednostki="";end; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"[%s_]+"," "); M(nazwa_jednostki); local pagename=mw.getContentLanguage():ucfirst(nazwa_jednostki); NazwyPagename(nstext,pagename,true,czy_biezaca_wiki); return pagename; else pelna_nazwa=nazwa_jednostki; end; 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_]+"," "); M(pelna_nazwa); local pagename=mw.getContentLanguage():ucfirst(pelna_nazwa); NazwyPagename("",pagename,true,czy_biezaca_wiki); return pagename; end; end; end; m.BAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.base))then return tabela_nazw.base; end; local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local base=mw.ustring.match(nazwa2,"^(.+)/[^/]+$"); local base=(base)and base or nazwa2; if(tabela_nazw)then tabela_nazw.base=base; end; return base; end; m["PEŁNANAZWASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["PEŁNABAZOWANAZWASTRONY"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWABAZOWANAZWASTRONY=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.BAZOWANAZWASTRONYDYSKUSJI=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.BAZOWANAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.PRZEDMIOTOWANAZWASTRONY = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m.NAZWASTRONYDYSKUSJI = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m["PRZESTRZEŃDYSKUSJI"](frame,tabela_nazw,czy_wiki); local nazwa2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa2 or nazwa2; end; m["CzęśćTytułu"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tytul=PobierzParametr(1); local ktora=PobierzParametr(2); ktora=tonumber(ktora) or 1; 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,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookname)then return tabela_nazw.bookname; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw; if(not tabela_nazw.przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); tabela_nazw.przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.przedmiotowa; end; local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; else if(not tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; else nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; end; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; elseif(nazwa_przedmiotowa_przestrzeni_nazw==kanoniczna.User)then local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; 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 local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=3,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; else local nazwa_ksiazki=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookname=nazwa_ksiazki; return nazwa_ksiazki; end; end; m["PEŁNANAZWAKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni_nazw=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return (nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_ksiazki or nazwa_ksiazki; end; m["NAZWAARTYKUŁUKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.article)then return tabela_nazw.article; end; 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_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local nazwa_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki; if((tabela_nazw.czy_aktualna_wiki==nil)or(czy_wiki))then czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else czy_biezaca_wiki=tabela_nazw.czy_aktualna_wiki; end; if(czy_biezaca_wiki)then if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; else if(tabela_nazw.kanoniczna_przedmiotowa)then nazwa_przedmiotowa_przestrzeni_nazw=tabela_nazw.kanoniczna_przedmiotowa; else nazwa_przedmiotowa_przestrzeni_nazw=m.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",}; tabela_nazw.kanoniczna_przedmiotowa=nazwa_przedmiotowa_przestrzeni_nazw; end; 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; tabela_nazw.article=nazw or ""; return tabela_nazw.article; end; m["NAZWAARTYKUŁUKSIĄŻKI2"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); if(artykul=="")then local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_ksiazki; else return artykul; end; end; m["PEŁNANAZWAARTYKUŁUKSIĄŻKI"]=function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local artykul=m["NAZWAARTYKUŁUKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["SUBNAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return ((artykul~="")and(nazwa_ksiazki.."/") or nazwa_ksiazki)..artykul; end; m["NAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; if(tabela_nazw.bookspace)then return tabela_nazw.bookspace; end; 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_przedmiotowa_przestrzeni_nazw=m["PRZEDMIOTOWAPRZESTRZEŃ"]({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); 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 tabela_nazw.bookspace=""; return ""; elseif(nazwa_przedmiotowa_przestrzeni_nazw==nazwy_np_modul.User)then local nazwa_strony=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[^/]*/.*"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; 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=m.NAZWASTRONY({nazwa=nazwa,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,},tabela_nazw,czy_wiki); if(mw.ustring.match(nazwa_strony,"^[Bb]rudnopis/[^/]+/.-$"))then local bookspace=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=2,}; tabela_nazw.bookspace=bookspace; return bookspace; else tabela_nazw.bookspace=""; return ""; end; else tabela_nazw.bookspace=""; return ""; end; end; m["PEŁNANAZWAPRZESTRZENIKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_ksiazki=m["NAZWAPRZESTRZENIKSIĄŻKI"](frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_ksiazki~="") and ":" or "")..nazwa_ksiazki; end; m.NAZWASUBPODSTRONY = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local nazwa=PobierzParametr("nazwa") or PobierzParametr(1); nazwa=nazwa or ""; local subpage=mw.ustring.match(nazwa,"[^/]*$"); return subpage; end; m.NAZWASUBSTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.subpage))then return tabela_nazw.subpage; end; local pelna_nazwa_strony2=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local subpage=m.NAZWASUBPODSTRONY(pelna_nazwa_strony2); if(tabela_nazw)then tabela_nazw.subpage=subpage; end; return subpage; end; m["SUBNAZWAKSIĄŻKI"] = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.book))then return tabela_nazw.book; end; local nazwa_ksiazki=m["NAZWAKSIĄŻKI"](frame,tabela_nazw,czy_wiki); local book=mw.ustring.match(nazwa_ksiazki,"[^/]*$"); if(tabela_nazw)then tabela_nazw.book=book; end; return book; end; m.NAZWAKORZENIASTRONY = function(frame,tabela_nazw,czy_wiki) if((tabela_nazw)and(tabela_nazw.root))then return tabela_nazw.root; end; local nazwa_strony=m.NAZWASTRONY(frame,tabela_nazw,czy_wiki); local root=m["CzęśćTytułu"]{[1]=nazwa_strony,[2]=1,}; if(tabela_nazw)then tabela_nazw.root=root; end; return root; end; m["PEŁNANAZWAKORZENIASTRONY"] = function(frame,tabela_nazw,czy_wiki) tabela_nazw=tabela_nazw or {}; local nazwa_przestrzeni=m.NAZWAPRZESTRZENI(frame,tabela_nazw,czy_wiki); local nazwa_korzenia_strony=m.NAZWAKORZENIASTRONY(frame,tabela_nazw,czy_wiki); return nazwa_przestrzeni..((nazwa_przestrzeni~="")and ":" or "")..nazwa_korzenia_strony; end; m["NazwaModułu"]=function(...) local args={ ... }; local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(args); local nazwa_przestrzeni=PobierzParametr(1); local nazwa_przestrzeni_ksiazki=PobierzParametr(2); local nazwa_ksiazki=PobierzParametr(3); local nazwa_artykulu=PobierzParametr(4); return (((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "")); end; return m; d8d09m194ghb4a9dsdiks83m3hf7v0j Szablon:LinkOgólne/opis 10 48166 552130 544550 2026-08-17T11:14:26Z Persino 2851 552130 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Linki}} {{Skomplikowany}} {{Szablony opakowań linków wewnętrznych}} {{#if:{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}} <!--DODAWAJ KATEGORIE NA DOLE STRONY --> == Opis szablonu == Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody a do tego celu używa {{NS|k=d|l=tak}}. Szablon {{s|LinkOgólne}} i jego pochodne w ich definicji, obsługują nazwy przestrzenie nazw kanoniczne (angielskie) lub w jakimś języku, na danym projekcie siostrzanych lub w ich wersjach językowych. Wystarczy podać nazwę kanoniczną przestrzeni nazw, a ta nazwa zostanie przetłumaczona na nazwę charakterystyczną dla danego projektu, jeżeli podamy parametr: {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}), bez: {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), w przeciwnym przypadku tego nie zrobi. Na przykład na projekcie bieżącym dla szablonów ogólnie nie między-projektowych, wyświetlana nazwa przestrzeni nazw zostanie przetłumaczona na nazwę charakterystyczną dla polskiego {{NS|p=a|w=tak|l=tak}}, jeżeli ustawimy szablon, by wyświetlał to w nazwie linku, to je robi możliwie po przetłumaczeniu na język polski, ona w adresie linku nie zostanie przetłumaczona, chyba że podamy parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a|tak}}) według powyższej specyfikacji. Szablon zwykle nie tłumaczy w adresie linku nazwy przestrzeni nazw, np. na język polski lub inny, podanym w definicji tego szablonu, jeżeli jest nazwą kanoniczną podaną w definicji tego szablonu, a jeżeli nie, to nie ma czego tłumaczyć (bo w definicji szablonu pod zmienną: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), np. jest podane: {{Code|Wikibooks}}, zamiast: {{Code|Project}}), chyba że w przeciwnym wypadku, chcemy, by przetłumaczył na język charakterystyczny dla danego projektu, wskazanym przez szablon, wtedy należy podać parametr poniżej opisany do szablonu do głębszej analizy linkowej. {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}}|A nazwa przestrzeni nazw wyświetlana w nazwie linku za to zawsze zostanie przetłumaczona na nasz język.}} Szablon używa zmiennej: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), w sposób {{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=jawny (w postaci osobnego parametru) lub nie (w pierwszej zmiennej)|#default=niejawny (w postaci zmiennej w definicji tego szablonu, używając szablon {{s|LinkOgólne}} (skrót: {{s|lo}}))}}, w przeciwieństwie do {{s|Link wewnętrzny}}, który tego nie ma, tzn. nazwa przestrzeni nazw jest zawsze podana tam w sposób niejawny w postaci pierwszej zmiennej wraz z adresem linku na danym projekcie i kluczem projektu (wtedy nie ma osobnego parametru do interwiki) lub nie (w postaci zmiennej (zmiennych) do interwiki). == Skrót szablonu == Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}. == Użycie == {{LinkOgólne/opis/linki|{{ROOTPAGENAME}}}} {{LinkOgólne/opis/definicje|{{ROOTPAGENAME}}}} == Opis parametrów == {{#switch:{{ROOTPAGENAME}}|LinkWB= ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}} |LinkSpecjalna= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} |LinkSpecjalna2= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} |LinkOgólne= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}} |LinkOgólne2= ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}} |#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}} | ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|d{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}} }}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} | ; Pełne skrótowe wywołanie {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}}}}} }}}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|po{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}} | ; Pełne skrótowe wywołanie {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|d{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}} }}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| ; Pełne pierwsze wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}} ; Pełne pierwsze wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}} ; Pełne drugie wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}} ; Pełne drugie wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}} | ; Pełne wywołanie skrótowe {{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}} ; Pełne wywołanie {{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}} }}}}}}}} ; Parametry szablonu * {{Code|1}} - nazwa strony, do której link linkuje się{{#ifeq:{{ROOTPAGENAME}}|LinkWB|,|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|, * {{Code|2}} - nazwa linku - (sugerowany),|,}}}} * {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za nazwą linku - (opcjonalny), * {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za linkiem - (opcjonalny){{#switch:{{ROOTPAGENAME}}|LinkWB=.|#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|, * {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny), * {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka używany zamiast {{Code|klucz projektu}} - (opcjonalny), * {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu używany zamiast {{Code|klucz projektu}} - (opcjonalny)}}{{#switch:{{ROOTPAGENAME}}|LinkSpecjalna|LinkSpecjalna2=|LinkWB=|#default={{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|, * {{Code|d}} (przestarzałe) lub {{Code|dyskusja}} - tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty - (opcjonalny)}}}}{{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=, * {{Code|f}} (przestarzałe), {{Code|przestrzeń}} (niezalecana) lub {{Code|miano przestrzeni nazw}} - miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego {{NS|p=a|l=tak|w=tak}}, i jego siostrzanych projektów, a także dla ich wersji językowych - (opcjonalny), * {{Code|i}} (przestarzałe), {{Code|alias}} lub {{Code|alias miana przestrzeni nazw}} - alias do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne|&#32;i podano niepustą zmienną {{Code|wyświetl miano przestrzeni nazw}} - (opcjonalny)}}{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne2|.|, * {{Code|w}} (przestarzałe), {{Code|wyświetl}} (niezalecana) lub {{Code|wyświetl miano przestrzeni nazw}} - jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku - (opcjonalny),}}}}}} * {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany. ---- Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu nieprzekierowania, a nie są, gdy używamy przekierowania do tego szablonu. ---- ---- Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr. == Przykłady == ; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}} {{LinkOgólne/opis/przykłady|{{ROOTPAGENAME}}}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa strony, do której link linkuje się.", "type": "wiki-page-name", "required": true }, "2": { "description": "Nazwa linku.", "type": "string", "suggested": true }, "po": { "aliases": [ "p" ], "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.", "type": "string" }, "klucz projektu": { "aliases": [ "k" ], "description": "Kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast kod języka i kod projektu." }, "kod języka": { "aliases": [ "kj" ], "description": "Kod języka używany zamiast klucz projektu." }, "kod projektu": { "aliases": [ "kp" ], "description": "Kod projektu używany zamiast klucz projektu." }, "dyskusja": { "aliases": [ "d" ], "description": "Tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty .", "type": "string" }, "miano przestrzeni nazw": { "aliases": [ "przestrzeń", "m" ], "description": "Miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego Wikibooksa, i jego siostrzanych projektów, a także dla ich wersji językowych.", "type": "string" }, "skrót nazwy przestrzeni nazw": { "aliases": [ "skrót", "s" ], "description": "Skrót do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku i podano niepustą zmienną wyświetl miano przestrzeni nazw.", "type": "string" }, "wyświetl miano przestrzeni nazw": { "aliases": [ "wyświetl", "w" ], "description": "Jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku.", "type": "string" }, "za": { "aliases": [ "z" ], "description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.", "type": "string" } }, "description": "Szablon ogólny linków {{LinkOgólne}}, który jest budulcem innych szablonów tego typu, służy do budowania inteligentnych linków, kolorujących je. Szablon {{LinkOgólne}} obsługuje wszystkie poniższe parametry, szablony pochodne używają tylko niektórych. Szablony, ale typowo nie między-projektowe, obsługują wszystkie parametry, oprócz nazwy przestrzeni nazw: miano przestrzeni nazw, i wyświetlania nazwy przestrzeni nazw: wyświetl miano przestrzeni nazw, i skrótu do nazwy przestrzeni nazwy: skrót nazwy przestrzeni nazw. Szablony: {{LinkSpecjalna}}, {{LinkSpecjalna2}} itp., dodatkowo nie obsługują parametru: dyskusja. Szablon {{LinkWB}}, też nie obsługuje parametru: skrót nazwy przestrzeni nazw. Szablony linków między-projektowe nie obsługują parametrów: miano przestrzeni nazw, wyświetl miano przestrzeni nazw, skrót nazwy przestrzeni nazw, klucz projektu, kod języka i kod projektu. ", "paramOrder": [ "1", "2", "za", "po", "klucz projektu", "kod języka", "kod projektu", "dyskusja", "miano przestrzeni nazw", "skrót nazwy przestrzeni nazw", "wyświetl miano przestrzeni nazw" ] } </templatedata> == Zobacz też == {{Link wewnętrzny/opis/Zobacz też}} {{Szablony linków wewnątrz- i między-serwisowych}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u+$}}|{{Kategoria|Szablony linków inteligetnych z wyświetlanymi skrótowymi nazwami przestrzeni nazw}}}} {{#switch:{{ROOTPAGENAME}}|LinkWB=|#default= {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}| {{#switch:{{ROOTPAGENAME}} |LinkOgólne|LinkOgólne2={{Kategoria|Szablony linków inteligentnych}} |#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}} |{{Kategoria|Szablony linków inteligentnych z wyświetlanymi nieskrótowymi nazwami przestrzeni nazw}} |{{Kategoria|Szablony linków inteligentnych z niewyświetlanymi nazwami przestrzeni nazw}} }} }} {{#switch:{{ROOTPAGENAME}} | LinkOgólne | LinkGłówna | LinkWikijunior | LinkWikijunior2 | LinkProjekt | LinkProjekt2 | LinkUżytkownik | LinkUżytkownik2 = {{Kategorie | Szablony pomocne do tworzenia spisów treści, książek | Szablony stronicowe linków inteligentnych spisów rzeczy }} }} |{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}} |{{#switch:{{ROOTPAGENAME}} | #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}} | LinkCommonsKategoria2 | LinkMetaWikiPomoc2 | LinkMediaWikiPomoc2 | LinkMetaWikiProjekt2 | LinkMediaWikiExtension2 = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}} }} |{{#switch:{{ROOTPAGENAME}} | #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} | LinkEnGłówna | LinkEnWikijunior | LinkEnProjekt | LinkEnKategoria | LinkEnPediaGłówna = {{Kategoria|Szablony linków inteligentnych, do językowych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} | LinkWikiaGłówna | LinkCommonsGłówna | LinkCommonsKategoria | LinkSpeciesGłówna | LinkMediaWikiGłówna | LinkMetaWikiGłówna | LinkDaneGłówna | LinkDaneProjekt | LinkSpeciesProjekt | LinkCommonsProjekt | LinkMetaWikiSpecjalna | LinkMetaWikiPomoc | LinkMetaWikiProjekt | LinkMediaWikiPomoc | LinkMediaWikiExtension = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}} }} }} }} }} </includeonly> rpd2orgkc8jjzmmxpmumflwok8doz92 Szablon:NAZWASERWISU 10 50755 552110 433817 2026-08-17T09:33:19Z Persino 2851 552110 wikitext text/x-wiki <includeonly>{{#invoke:Nazwy|NAZWASERWISU}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | 1 = | za = | po = | link = | wikipedia = | klucz projektu = ;kod języka;kod projektu | kod języka = ;klucz projektu | kod projektu = ;klucz projektu | w języku wiki = | bez znaczników = | bez przetwarzania = }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> nj5yeeq5u5tdlbmks58rr82soycvyb4 552111 552110 2026-08-17T09:40:20Z Persino 2851 552111 wikitext text/x-wiki <includeonly>{{#invoke:Nazwy|NAZWASERWISU}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | 1 = | za = ;z | z = ;za | po = ;p | p = ;po | link = ;l | l = ;link | wikipedia = ;w | w = ;wikipedia | klucz projektu = ;kod języka;kj;kod projektu;kp;k | k = ;kod języka;kj;kod projektu;kp;klucz projektu | kod języka = ;klucz projektu;k;kj | kj = ;klucz projektu;k;kod języka | kod projektu = ;klucz projektu;k;kp | kp = ;klucz projektu;k;kod projektu | w języku wiki = ;jw | jw = ;w języku wiki | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> fltxk0fnzhtwoe0d7qwgjeezy52dzzv 552112 552111 2026-08-17T09:42:52Z Persino 2851 552112 wikitext text/x-wiki <includeonly>{{#invoke:Nazwy|NAZWASERWISU}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | 1 = | przypadek = ;pk | pk = ;przypadek | za = ;z | z = ;za | po = ;p | p = ;po | link = ;l | l = ;link | wikipedia = ;w | w = ;wikipedia | klucz projektu = ;kod języka;kj;kod projektu;kp;k | k = ;kod języka;kj;kod projektu;kp;klucz projektu | kod języka = ;klucz projektu;k;kj | kj = ;klucz projektu;k;kod języka | kod projektu = ;klucz projektu;k;kp | kp = ;klucz projektu;k;kod projektu | w języku wiki = ;jw | jw = ;w języku wiki | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> e7xqzsjtpuajiu2dbdbjzyniddyk86i 552118 552112 2026-08-17T09:57:23Z Persino 2851 552118 wikitext text/x-wiki <includeonly>{{#invoke:Nazwy|NAZWASERWISU}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | 1 = ;n | n = ;1 | przypadek = ;pk | pk = ;przypadek | za = ;z | z = ;za | po = ;p | p = ;po | link = ;l | l = ;link | wikipedia = ;w | w = ;wikipedia | klucz projektu = ;kod języka;kj;kod projektu;kp;k | k = ;kod języka;kj;kod projektu;kp;klucz projektu | kod języka = ;klucz projektu;k;kj | kj = ;klucz projektu;k;kod języka | kod projektu = ;klucz projektu;k;kp | kp = ;klucz projektu;k;kod projektu | w języku wiki = ;jw | jw = ;w języku wiki | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> bo09wc654k9g3r82twjvoghcrv1hbft 552119 552118 2026-08-17T09:58:38Z Persino 2851 552119 wikitext text/x-wiki <includeonly>{{#invoke:Nazwy|NAZWASERWISU}}<!-- -->{{#if:{{{bez dodatkowych sprawdzeń|}}}||<!-- -->{{#invoke:Sprawdź|Parametry | = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}} | 1 = ;nazwa;n | nazwa = 1;n | n = ;1;nazwa | przypadek = ;pk | pk = ;przypadek | za = ;z | z = ;za | po = ;p | p = ;po | link = ;l | l = ;link | wikipedia = ;w | w = ;wikipedia | klucz projektu = ;kod języka;kj;kod projektu;kp;k | k = ;kod języka;kj;kod projektu;kp;klucz projektu | kod języka = ;klucz projektu;k;kj | kj = ;klucz projektu;k;kod języka | kod projektu = ;klucz projektu;k;kp | kp = ;klucz projektu;k;kod projektu | w języku wiki = ;jw | jw = ;w języku wiki | bez znaczników = ;bz | bz = ;bez znaczników | bez przetwarzania = ;bp | bp = ;bez przetwarzania }}<!-- -->}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> h3u7lytbg0vt9oexnobkvrjhk04sm5u Szablon:NAZWASERWISU/opis 10 50756 552106 544022 2026-08-17T08:59:47Z Persino 2851 /* Użycie */ 552106 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem {{Code|link}}), * {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}}- gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego języku. Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> kq8flegvp2rmgnbvwhjp7vhiw6193ij 552113 552106 2026-08-17T09:45:20Z Persino 2851 /* Użycie */ 552113 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|po}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego języku. Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> 6m8jlb7trg6n96t5tq3rjfkxbzbclda 552114 552113 2026-08-17T09:46:14Z Persino 2851 /* Opis parametrów użytych razem z parametrem {{Code|link}} */ 552114 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|po}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego języku. Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> s1uh6h32wok9706yokphc9fzjnslp4o 552115 552114 2026-08-17T09:46:47Z Persino 2851 /* Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} */ 552115 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|po}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego języku. Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem: {{Parametr|l|tak}} (skrótowo) lub {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> aitme2a7l4ayo7044gblpqlioxktlub 552116 552115 2026-08-17T09:49:55Z Persino 2851 /* Użycie */ 552116 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. ; Parametry nietechniczne{{dk}} * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|po}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego język. ; Parametry techniczne{{dk}} * {{Code|bz}} lub {{Code|bez znaczników}} - szablon drukuje link bez otoczki linku wewnętrznego mechanizmu '''MediaWiki''', * {{Code|bz}} lub {{Code|bez przetwarzania}} - szablon drukuje link bez przetwarzania wewnętrznego linkowego. ---- Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem: {{Parametr|l|tak}} (skrótowo) lub {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> qqm5sn323evs8ima7c77f7v9vpkpg3m 552120 552116 2026-08-17T09:59:11Z Persino 2851 /* Użycie */ 552120 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. ; Parametry nietechniczne{{dk}} * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|n}}, {{Code|nazwa}} lub {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|po}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego język. ; Parametry techniczne{{dk}} * {{Code|bz}} lub {{Code|bez znaczników}} - szablon drukuje link bez otoczki linku wewnętrznego mechanizmu '''MediaWiki''', * {{Code|bz}} lub {{Code|bez przetwarzania}} - szablon drukuje link bez przetwarzania wewnętrznego linkowego. ---- Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem: {{Parametr|l|tak}} (skrótowo) lub {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> l3uqntt64lhfd2um3z1my8wl74ot77p 552122 552120 2026-08-17T10:06:48Z Persino 2851 552122 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} {{Skrót szablonu|NS}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. ; Parametry nietechniczne{{dk}} * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|n}}, {{Code|nazwa}} lub {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|po}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego język. ; Parametry techniczne{{dk}} * {{Code|bz}} lub {{Code|bez znaczników}} - szablon drukuje link bez otoczki linku wewnętrznego mechanizmu '''MediaWiki''', * {{Code|bz}} lub {{Code|bez przetwarzania}} - szablon drukuje link bez przetwarzania wewnętrznego linkowego. ---- Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem: {{Parametr|l|tak}} (skrótowo) lub {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> pyapxpjgz8d9zieyi6rxsyk2bvfz9lr 552123 552122 2026-08-17T10:13:03Z Persino 2851 /* Użycie */ 552123 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} {{Skrót szablonu|NS}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. ; Parametry nietechniczne{{dk}} * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|n}}, {{Code|nazwa}} lub {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem: {{Code|l}} (skrót) lub {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|po}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego język. ; Parametry techniczne{{dk}} * {{Code|bz}} lub {{Code|bez znaczników}} - szablon drukuje link bez otoczki linku wewnętrznego mechanizmu '''MediaWiki''', * {{Code|bz}} lub {{Code|bez przetwarzania}} - szablon drukuje link bez przetwarzania wewnętrznego linkowego. ---- Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem: {{Parametr|l|tak}} (skrótowo) lub {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> qqesnaislqu8np12i8f0emoi39sszse 552124 552123 2026-08-17T10:13:50Z Persino 2851 /* Użycie */ 552124 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} {{Skrót szablonu|NS}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. ; Parametry nietechniczne{{dk}} * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|n}}, {{Code|nazwa}} lub {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem: {{Code|l}} (skrót) lub {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|p}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego język. ; Parametry techniczne{{dk}} * {{Code|bz}} lub {{Code|bez znaczników}} - szablon drukuje link bez otoczki linku wewnętrznego mechanizmu '''MediaWiki''', * {{Code|bz}} lub {{Code|bez przetwarzania}} - szablon drukuje link bez przetwarzania wewnętrznego linkowego. ---- Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem: {{Parametr|l|tak}} (skrótowo) lub {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name" }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string" }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string" }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string" }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string" }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu." }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu." }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu." }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string" } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> l3brm81guewxfzo8bal8elsd1qsj9ys 552125 552124 2026-08-17T10:18:42Z Persino 2851 /* Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) */ 552125 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} {{Skrót szablonu|NS}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. ; Parametry nietechniczne{{dk}} * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|n}}, {{Code|nazwa}} lub {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem: {{Code|l}} (skrót) lub {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|p}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego język. ; Parametry techniczne{{dk}} * {{Code|bz}} lub {{Code|bez znaczników}} - szablon drukuje link bez otoczki linku wewnętrznego mechanizmu '''MediaWiki''', * {{Code|bz}} lub {{Code|bez przetwarzania}} - szablon drukuje link bez przetwarzania wewnętrznego linkowego. ---- Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem: {{Parametr|l|tak}} (skrótowo) lub {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name", "aliases": [ "nazwa, n" ] }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string", "aliases": [ "z" ] }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string", "aliases": [ "p" ] }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string", "aliases": [ "l" ] }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string", "aliases": [ "w" ] }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu.", "aliases": [ "k" ] }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu.", "aliases": [ "kj" ] }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu.", "aliases": [ "kp" ] }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string", "aliases": [ "jw" ] }, "bez znaczników": { "aliases": [ "bz" ], "description": "Szablon drukuje link bez otoczki linku wewnętrznego mechanizmu MediaWiki." }, "bez przetwarzania": { "aliases": [ "bp" ], "description": "Szablon drukuje link bez przetwarzania wewnętrznego linkowego." } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> 5w3ibdei2d98rlpqdg5j69g0ri8blx0 552129 552125 2026-08-17T11:12:49Z Persino 2851 /* Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} */ 552129 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Lua|Module:Nazwy}} {{Skrót szablonu|NS}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej. ; Parametry nietechniczne{{dk}} * postać bezparametrowa - gdy chcemy uzyskać nazwę lokalnego serwisu, * {{Code|n}}, {{Code|nazwa}} lub {{Code|1}} - nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem: {{Code|l}} (skrót) lub {{Code|link}}), * {{Code|pk}} lub {{Code|przypadek}} - lub zamiast pierwszego parametru, ma być wyświetlana nazwa określana przez przypadek, tą zmienną jest właśnie odmiana rzeczowników, które nazywa się: '''przypadkami''', * {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą linku, * {{Code|p}} lub {{Code|po}} - dokończenie nazwy linku do zmiennej {{Code|1}} lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem, * {{Code|l}} lub {{Code|link}} - wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki), * {{Code|w}} lub {{Code|wikipedia}} - zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: ** {{Code|wikipedia}} - gdy chcemy linkować do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, wartość niepusta, ** inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta, * {{Code|kp}} lub {{Code|klucz projektu}} - klucz projektu, używany zamiast: {{Code|kod języka}} i {{Code|kod projektu}}, * {{Code|kj}} lub {{Code|kod języka}} - kod do wersji językowej projektu danej wiki, używany zamiast {{Code|klucz projektu}}, * {{Code|kp}} lub {{Code|kod projektu}} - kod projektu danej wiki, używany zamiast: {{Code|klucz projektu}}, * {{Code|jw}} lub {{Code|w języku wiki}} - jeśli nie pusta, to wyświetl nazwę projektu w jego język. ; Parametry techniczne{{dk}} * {{Code|bz}} lub {{Code|bez znaczników}} - szablon drukuje link bez otoczki linku wewnętrznego mechanizmu '''MediaWiki''', * {{Code|bz}} lub {{Code|bez przetwarzania}} - szablon drukuje link bez przetwarzania wewnętrznego linkowego. ---- Wszystkie powyższe zmienne są opcjonalne. == Opis parametrów użytych razem z parametrem: {{Code|l}} (skrót) lub {{Code|link}} == Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NAZWASERWISU|link{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NAZWASERWISU|link=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NAZWASERWISU|link=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}}}} mamy: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}}}} mamy wynik w postaci: {{Code|{{NAZWASERWISU|link=tak|kod języka=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}}}}, to mamy: {{Code|{{NAZWASERWISU|link=tak|kod projektu=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}}}} jest o wyniku: {{Code|{{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}}}. * Wyniki z parametrem: {{Parametr|l|tak}} (skrótowo) lub {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu. == Odmiany przez przypadki == ; Dla projektu{{dk}} {{NS|k=w|l=tak}}, odmiany przez przypadki{{dk}} * {{NAZWASERWISU|k=w|pk=m|l=tak}} - mianownik, * {{NAZWASERWISU|k=w|pk=d|l=tak}} - dopełniacz * {{NAZWASERWISU|k=w|pk=c|l=tak}} - celownik, * {{NAZWASERWISU|k=w|pk=b|l=tak}} - biernik, * {{NAZWASERWISU|k=w|pk=mj|l=tak}} - miejscownik, * {{NAZWASERWISU|k=w|pk=n|l=tak}} - nadrzędnik, * {{NAZWASERWISU|k=w|pk=w|l=tak}} - wołacz. == Przykłady == ==== Wywołania szablonu dotyczące tego projektu ==== * {{s|NAZWASERWISU}} → {{NAZWASERWISU}}, * {{s|NAZWASERWISU|link{{=}}tak}} → {{NAZWASERWISU|link=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|kod języka=en}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en}}. ==== Wywołanie szablonu dotyczące innego projektu niż ten ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s}}. ==== Wywołania szablonu z nazwą linku danej wiki ==== * {{s|NAZWASERWISU|link{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}pl|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=pl|kod projektu=s|w języku wiki=tak}}, * {{s|NAZWASERWISU|link{{=}}tak|wikipedia{{=}}tak|kod języka{{=}}en|kod projektu{{=}}s|w języku wiki{{=}}tak}} → {{NAZWASERWISU|link=tak|wikipedia=tak|kod języka=en|kod projektu=s|w języku wiki=tak}}. ==== Wywołanie szablonu z podaną nazwą linku ==== * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak}}, * {{s|NAZWASERWISU|Biblioteka książek|link{{=}}tak|wikipedia{{=}}tak}} → {{NAZWASERWISU|Biblioteka książek|link=tak|wikipedia=tak}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|kod projektu=s|kod języka=en}}, * {{s|NAZWASERWISU|Biblioteka wikiźródeł|link{{=}}tak|wikipedia{{=}}tak|kod projektu{{=}}s|kod języka{{=}}en}} → {{NAZWASERWISU|Biblioteka wikiźródeł|link=tak|wikipedia=tak|kod projektu=s|kod języka=en}}. == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Nazwa wyświetlana linku (opcjonalna, domyślnie nazwa danej wiki, używana jedynie z parametrem link).", "type": "wiki-page-name", "aliases": [ "nazwa, n" ] }, "za": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za nazwą link.", "type": "string", "aliases": [ "z" ] }, "po": { "description": "Dokończenie nazwy linku do zmiennej 1 lub bez tej zmiennej, ale do nazwy wygenerowanej automatycznie, wstawianym bezpośrednio za linkiem.", "type": "string", "aliases": [ "p" ] }, "link": { "description": "Wartość niepusta, gdy chcemy linkować (domyślnie do strony głównej projektu danej wiki, gdy ten parametr jest sam, to do lokalnej wiki).", "type": "string", "aliases": [ "l" ] }, "wikipedia": { "description": "Zmienna przyjmująca dwie możliwe rodzaje wartości pozwalająca wyświetlić wyniki dotyczące projektu danej wiki na dwóch możliwych rodzajów projektach następujących: wikipedia - gdy chcemy linkować do artykułu o danej wiki na Wikipedii, wartość niepusta, inny projekt - gdy chcemy linkować do strony głównej serwisu danej wiki, wartość pusta.", "type": "string", "aliases": [ "w" ] }, "klucz projektu": { "description": "Klucz projektu, używany zamiast: kod języka i kod projektu.", "aliases": [ "k" ] }, "kod języka": { "description": "Kod do wersji językowej projektu danej wiki, używany zamiast klucz projektu.", "aliases": [ "kj" ] }, "kod projektu": { "description": "Kod projektu danej wiki, używany zamiast: klucz projektu.", "aliases": [ "kp" ] }, "w języku wiki": { "description": "Jeśli nie pusta, to wyświetl nazwę projektu w jego języku.", "type": "string", "aliases": [ "jw" ] }, "bez znaczników": { "aliases": [ "bz" ], "description": "Szablon drukuje link bez otoczki linku wewnętrznego mechanizmu MediaWiki." }, "bez przetwarzania": { "aliases": [ "bp" ], "description": "Szablon drukuje link bez przetwarzania wewnętrznego linkowego." } }, "description": "Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na Wikipedii, w jakieś podanej wersji językowej." } </templatedata> == Zobacz też == ; Szablony nazw * {{lk2|Szablony nazw}} - kategoria, z szablonami nazw, jako jego pozycje, zmiennych nielinkowych, otrzymywanych z pełnej nazwy strony. ; Szablony linków * {{s|Link wewnętrzny}} - szablon linków wewnętrznych, którego silnik jest wykorzystywany przy budowie tego szablonu, w kodzie w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony nazw}} </includeonly> 3zu8n04jqs49q80ox3kq6bvup7uye1n Szablon:DNU/Sprawdzenia 10 54262 552079 505644 2026-08-17T06:45:32Z Persino 2851 552079 wikitext text/x-wiki <includeonly>{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia|zostawiono|usuwane|brak wyniku|naprawiono= <!-- Dyskusja w toku --> {{#if:{{{2|{{{podstrona|}}}}}}| <!-- Podano podstronę --> {{#ifexist:{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{DNU/prefix|{{{1|{{{typ}}}}}}}}/|#default=}}{{{2|{{{podstrona}}}}}}| <!-- Podstrona istnieje - wszystkie warunki spełnione --> <!--DNU/silnik--> | <!-- Podstrona nie istnieje --> {{ombox | typ = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia=zawartość|zostawiono|usuwane|brak wyniku|naprawiono=wiadomość}} | tekst = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia= <div style="float:right;"><small>[{{fullurl:{{FULLPAGENAME}}|action=purge}} Odśwież]</small></div> {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{{2|{{{podstrona}}}}}}|podano podstronę=tak|dokumentacja={{{dokumentacja|}}}}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} |zostawiono|usuwane|brak wyniku|naprawiono='''BŁĄD! Podana podstrona nie istnieje.''' {{Br}}{{Small|Pamiętaj, że w przypadku zakończonych dyskusji należy podać całą ścieżkę do podstrony, np. ''{{DNU/prefix|artykuł}}/{{#timel:Y:m:d}}:{{SUBJECTPAGENAME}}''.}} }} }} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - błędne wywołania}}}} }} | <!--Nie podano podstrony --> {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{ombox | typ = zawartość | tekst= {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{Czas|Y:m:d}}:{{FULLPAGENAME}}|podano podstronę=nie}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} }} |zostawiono|usuwane|brak wyniku|naprawiono= <!--DNU/silnik--> }} }} |#default=<!--DNU/silnik--> }}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{S|DNU}}, zobacz stronę {{LinkProjekt|Poczekalnia}}. * Szablon uruchomiony przez szablon: {{s|DNU}}, który służy do sprawdzenia, czy jest niedokończone zgłoszenie tego wspomnianego szablonu, a jeżeli tak, to jest wywoływane: {{s|DNU/instrukcja}}. ; Możliwe tryby, w którym szablon jest wywoływany{{dk}} * Zgłoszenia przed decyzją administratora dla treści przed dyskusją: ** {{Code|naprawa}} - gdy strona jest zgłoszona do naprawy, ** {{Code|prowokacja}} - gdy strona z aktami prowokacyjnymi jest zgłoszona do usunięcia, ** {{Code|artykuł}} - gdy strona, np. artykuł lub podręcznik, jest zgłoszona do usunięcia, ** {{Code|technikalia}} - strona techniczna posiada problemy techniczne,które uniemożliwiają z niej dalsze użytkowanie, * Operacje dokonane przez administratora lub użytkownika zaawansowanego, po wyniku dyskusji inych użytkowników: ** {{Code|zostawiono}} - stronę zostawiono, wyniki dyskusji ** {{Code|usuwane}} - stronę wskazano do usunięcia, ** {{Code|brak wyniku}} - brak konsensusu w wyniku głosowania, ** {{Code|naprawiono}} - stronę naprawiono w wyniku dyskusji. ; Możliwe wywołania szablonu {{s|DNU/instrukcja}}, dla treści przez dyskusją{{dk}} * Nic nie jest wywoływane, gdy strona zgłoszenia istnieje, * Ten szablon omówiony jest wywoływany, w tym szablonie, gdy strona zgłoszenia nie istnieje, wtedy jest zgłaszana kategoria: {{l|Kategoria:Szablon DNU - błędne wywołania|bd=tak}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 83grm3e80u17b1yfwe549y7ybakvp0r 552080 552079 2026-08-17T06:45:57Z Persino 2851 552080 wikitext text/x-wiki <includeonly>{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia|zostawiono|usuwane|brak wyniku|naprawiono= <!-- Dyskusja w toku --> {{#if:{{{2|{{{podstrona|}}}}}}| <!-- Podano podstronę --> {{#ifexist:{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{DNU/prefix|{{{1|{{{typ}}}}}}}}/|#default=}}{{{2|{{{podstrona}}}}}}| <!-- Podstrona istnieje - wszystkie warunki spełnione --> <!--DNU/silnik--> | <!-- Podstrona nie istnieje --> {{ombox | typ = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia=zawartość|zostawiono|usuwane|brak wyniku|naprawiono=wiadomość}} | tekst = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia= <div style="float:right;"><small>[{{fullurl:{{FULLPAGENAME}}|action=purge}} Odśwież]</small></div> {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{{2|{{{podstrona}}}}}}|podano podstronę=tak|dokumentacja={{{dokumentacja|}}}}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} |zostawiono|usuwane|brak wyniku|naprawiono='''BŁĄD! Podana podstrona nie istnieje.''' {{Br}}{{Small|Pamiętaj, że w przypadku zakończonych dyskusji należy podać całą ścieżkę do podstrony, np. ''{{DNU/prefix|artykuł}}/{{#timel:Y:m:d}}:{{SUBJECTPAGENAME}}''.}} }} }} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - błędne wywołania}}}} }} | <!--Nie podano podstrony --> {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{ombox | typ = zawartość | tekst= {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{Czas|Y:m:d}}:{{FULLPAGENAME}}|podano podstronę=nie}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} }} |zostawiono|usuwane|brak wyniku|naprawiono= <!--DNU/silnik--> }} }} |#default=<!--DNU/silnik--> }}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{S|DNU}}, zobacz stronę {{LinkProjekt|Poczekalnia}}. * Szablon uruchomiony przez szablon: {{s|DNU}}, który służy do sprawdzenia, czy jest niedokończone zgłoszenie tego wspomnianego szablonu, a jeżeli tak, to jest wywoływane: {{s|DNU/instrukcja}}. ; Możliwe tryby, w którym szablon jest wywoływany{{dk}} * Zgłoszenia przed decyzją administratora dla treści przed dyskusją: ** {{Code|naprawa}} - gdy strona jest zgłoszona do naprawy, ** {{Code|prowokacja}} - gdy strona z aktami prowokacyjnymi jest zgłoszona do usunięcia, ** {{Code|artykuł}} - gdy strona, np. artykuł lub podręcznik, jest zgłoszona do usunięcia, ** {{Code|technikalia}} - strona techniczna posiada problemy techniczne,które uniemożliwiają z niej dalsze użytkowanie, * Operacje dokonane przez administratora lub użytkownika zaawansowanego, po wyniku dyskusji inych użytkowników: ** {{Code|zostawiono}} - stronę zostawiono, wyniki dyskusji ** {{Code|usuwane}} - stronę wskazano do usunięcia, ** {{Code|brak wyniku}} - brak konsensusu w wyniku głosowania, ** {{Code|naprawiono}} - stronę naprawiono w wyniku dyskusji. ; Możliwe wywołania szablonu {{s|DNU/instrukcja}}, dla treści przed dyskusją{{dk}} * Nic nie jest wywoływane, gdy strona zgłoszenia istnieje, * Ten szablon omówiony jest wywoływany, w tym szablonie, gdy strona zgłoszenia nie istnieje, wtedy jest zgłaszana kategoria: {{l|Kategoria:Szablon DNU - błędne wywołania|bd=tak}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> n69jad7y7m1fwm16vqscrlobcssqlku 552081 552080 2026-08-17T06:46:46Z Persino 2851 552081 wikitext text/x-wiki <includeonly>{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia|zostawiono|usuwane|brak wyniku|naprawiono= <!-- Dyskusja w toku --> {{#if:{{{2|{{{podstrona|}}}}}}| <!-- Podano podstronę --> {{#ifexist:{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{DNU/prefix|{{{1|{{{typ}}}}}}}}/|#default=}}{{{2|{{{podstrona}}}}}}| <!-- Podstrona istnieje - wszystkie warunki spełnione --> <!--DNU/silnik--> | <!-- Podstrona nie istnieje --> {{ombox | typ = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia=zawartość|zostawiono|usuwane|brak wyniku|naprawiono=wiadomość}} | tekst = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia= <div style="float:right;"><small>[{{fullurl:{{FULLPAGENAME}}|action=purge}} Odśwież]</small></div> {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{{2|{{{podstrona}}}}}}|podano podstronę=tak|dokumentacja={{{dokumentacja|}}}}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} |zostawiono|usuwane|brak wyniku|naprawiono='''BŁĄD! Podana podstrona nie istnieje.''' {{Br}}{{Small|Pamiętaj, że w przypadku zakończonych dyskusji należy podać całą ścieżkę do podstrony, np. ''{{DNU/prefix|artykuł}}/{{#timel:Y:m:d}}:{{SUBJECTPAGENAME}}''.}} }} }} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - błędne wywołania}}}} }} | <!--Nie podano podstrony --> {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{ombox | typ = zawartość | tekst= {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{Czas|Y:m:d}}:{{FULLPAGENAME}}|podano podstronę=nie}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} }} |zostawiono|usuwane|brak wyniku|naprawiono= <!--DNU/silnik--> }} }} |#default=<!--DNU/silnik--> }}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{S|DNU}}, zobacz stronę {{LinkProjekt|Poczekalnia}}. * Szablon uruchomiony przez szablon: {{s|DNU}}, który służy do sprawdzenia, czy jest niedokończone zgłoszenie tego wspomnianego szablonu, a jeżeli tak, to jest wywoływane: {{s|DNU/instrukcja}}. ; Możliwe tryby, w którym szablon jest wywoływany{{dk}} * Zgłoszenia przed decyzją administratora dla treści przed dyskusją: ** {{Code|naprawa}} - gdy strona jest zgłoszona do naprawy, ** {{Code|prowokacja}} - gdy strona z aktami prowokacyjnymi jest zgłoszona do usunięcia, ** {{Code|artykuł}} - gdy strona, np. artykuł lub podręcznik, jest zgłoszona do usunięcia, ** {{Code|technikalia}} - strona techniczna posiada problemy techniczne,które uniemożliwiają z niej dalsze użytkowanie, * Operacje dokonane przez administratora lub użytkownika zaawansowanego, po wyniku dyskusji przez innych użytkowników: ** {{Code|zostawiono}} - stronę zostawiono, wyniki dyskusji ** {{Code|usuwane}} - stronę wskazano do usunięcia, ** {{Code|brak wyniku}} - brak konsensusu w wyniku głosowania, ** {{Code|naprawiono}} - stronę naprawiono w wyniku dyskusji. ; Możliwe wywołania szablonu {{s|DNU/instrukcja}}, dla treści przed dyskusją{{dk}} * Nic nie jest wywoływane, gdy strona zgłoszenia istnieje, * Ten szablon omówiony jest wywoływany, w tym szablonie, gdy strona zgłoszenia nie istnieje, wtedy jest zgłaszana kategoria: {{l|Kategoria:Szablon DNU - błędne wywołania|bd=tak}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> bsjdre7078l18iestn44qnf3i75b56c 552082 552081 2026-08-17T06:47:32Z Persino 2851 552082 wikitext text/x-wiki <includeonly>{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia|zostawiono|usuwane|brak wyniku|naprawiono= <!-- Dyskusja w toku --> {{#if:{{{2|{{{podstrona|}}}}}}| <!-- Podano podstronę --> {{#ifexist:{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{DNU/prefix|{{{1|{{{typ}}}}}}}}/|#default=}}{{{2|{{{podstrona}}}}}}| <!-- Podstrona istnieje - wszystkie warunki spełnione --> <!--DNU/silnik--> | <!-- Podstrona nie istnieje --> {{ombox | typ = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia=zawartość|zostawiono|usuwane|brak wyniku|naprawiono=wiadomość}} | tekst = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia= <div style="float:right;"><small>[{{fullurl:{{FULLPAGENAME}}|action=purge}} Odśwież]</small></div> {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{{2|{{{podstrona}}}}}}|podano podstronę=tak|dokumentacja={{{dokumentacja|}}}}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} |zostawiono|usuwane|brak wyniku|naprawiono='''BŁĄD! Podana podstrona nie istnieje.''' {{Br}}{{Small|Pamiętaj, że w przypadku zakończonych dyskusji należy podać całą ścieżkę do podstrony, np. ''{{DNU/prefix|artykuł}}/{{#timel:Y:m:d}}:{{SUBJECTPAGENAME}}''.}} }} }} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - błędne wywołania}}}} }} | <!--Nie podano podstrony --> {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{ombox | typ = zawartość | tekst= {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{Czas|Y:m:d}}:{{FULLPAGENAME}}|podano podstronę=nie}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} }} |zostawiono|usuwane|brak wyniku|naprawiono= <!--DNU/silnik--> }} }} |#default=<!--DNU/silnik--> }}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{S|DNU}}, zobacz stronę {{LinkProjekt|Poczekalnia}}. * Szablon uruchomiony przez szablon: {{s|DNU}}, który służy do sprawdzenia, czy jest niedokończone zgłoszenie tego wspomnianego szablonu, a jeżeli tak, to jest wywoływane: {{s|DNU/instrukcja}}. ; Możliwe tryby, w którym szablon jest wywoływany{{dk}} * Zgłoszenia przed decyzją administratora dla treści przed dyskusją: ** {{Code|naprawa}} - gdy strona jest zgłoszona do naprawy, ** {{Code|prowokacja}} - gdy strona z aktami prowokacyjnymi jest zgłoszona do usunięcia, ** {{Code|artykuł}} - gdy strona, np. artykuł lub podręcznik, jest zgłoszona do usunięcia, ** {{Code|technikalia}} - strona techniczna posiada problemy techniczne, które uniemożliwiają z niej dalsze użytkowanie, możliwe, że stronę trzeba usunąć. * Operacje dokonane przez administratora lub użytkownika zaawansowanego, po wyniku dyskusji przez innych użytkowników: ** {{Code|zostawiono}} - stronę zostawiono, wyniki dyskusji ** {{Code|usuwane}} - stronę wskazano do usunięcia, ** {{Code|brak wyniku}} - brak konsensusu w wyniku głosowania, ** {{Code|naprawiono}} - stronę naprawiono w wyniku dyskusji. ; Możliwe wywołania szablonu {{s|DNU/instrukcja}}, dla treści przed dyskusją{{dk}} * Nic nie jest wywoływane, gdy strona zgłoszenia istnieje, * Ten szablon omówiony jest wywoływany, w tym szablonie, gdy strona zgłoszenia nie istnieje, wtedy jest zgłaszana kategoria: {{l|Kategoria:Szablon DNU - błędne wywołania|bd=tak}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> i06ma0ybmb59fxa83bybe4qnz0dyalk 552083 552082 2026-08-17T06:49:15Z Persino 2851 552083 wikitext text/x-wiki <includeonly>{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia|zostawiono|usuwane|brak wyniku|naprawiono= <!-- Dyskusja w toku --> {{#if:{{{2|{{{podstrona|}}}}}}| <!-- Podano podstronę --> {{#ifexist:{{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{DNU/prefix|{{{1|{{{typ}}}}}}}}/|#default=}}{{{2|{{{podstrona}}}}}}| <!-- Podstrona istnieje - wszystkie warunki spełnione --> <!--DNU/silnik--> | <!-- Podstrona nie istnieje --> {{ombox | typ = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia=zawartość|zostawiono|usuwane|brak wyniku|naprawiono=wiadomość}} | tekst = {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia= <div style="float:right;"><small>[{{fullurl:{{FULLPAGENAME}}|action=purge}} Odśwież]</small></div> {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{{2|{{{podstrona}}}}}}|podano podstronę=tak|dokumentacja={{{dokumentacja|}}}}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} |zostawiono|usuwane|brak wyniku|naprawiono='''BŁĄD! Podana podstrona nie istnieje.''' {{Br}}{{Small|Pamiętaj, że w przypadku zakończonych dyskusji należy podać całą ścieżkę do podstrony, np. ''{{DNU/prefix|artykuł}}/{{#timel:Y:m:d}}:{{SUBJECTPAGENAME}}''.}} }} }} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - błędne wywołania}}}} }} | <!--Nie podano podstrony --> {{#switch:{{{1|{{{typ}}}}}}|naprawa|prowokacja|artykuł|technikalia={{ombox | typ = zawartość | tekst= {{DNU/instrukcja|{{{1|{{{typ}}}}}}|podstrona={{Czas|Y:m:d}}:{{FULLPAGENAME}}|podano podstronę=nie}} {{#if:{{{bez kategorii|}}}||{{Kategoria|Szablon DNU - niedokończone zgłoszenia}}}} }} |zostawiono|usuwane|brak wyniku|naprawiono= <!--DNU/silnik--> }} }} |#default=<!--DNU/silnik--> }}</includeonly><noinclude>{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu {{S|DNU}}, zobacz stronę {{LinkProjekt|Poczekalnia}}. * Szablon uruchomiony przez szablon: {{s|DNU}}, który służy do sprawdzenia, czy jest niedokończone zgłoszenie tego wspomnianego szablonu, a jeżeli tak, to jest wywoływane: {{s|DNU/instrukcja}}. ; Możliwe tryby, w którym szablon jest wywoływany{{dk}} * Zgłoszenia przed decyzją administratora dla treści przed dyskusją: ** {{Code|naprawa}} - gdy strona jest zgłoszona do naprawy, ** {{Code|prowokacja}} - gdy strona z aktami prowokacyjnymi jest zgłoszona do usunięcia, ** {{Code|artykuł}} - gdy strona, np. artykuł lub podręcznik, jest zgłoszona do usunięcia, ** {{Code|technikalia}} - strona techniczna posiada problemy techniczne, które uniemożliwiają z niej dalsze użytkowanie, możliwe, że stronę trzeba usunąć. * Operacje dokonane przez administratora lub użytkownika zaawansowanego, po wyniku dyskusji przez innych użytkowników: ** {{Code|zostawiono}} - stronę zostawiono, w wyniki dyskusji, z uzasadnionym motywem pozostawienia, ** {{Code|usuwane}} - stronę wskazano do usunięcia, w dyskusji, ** {{Code|brak wyniku}} - brak konsensusu w wyniku głosowania, ** {{Code|naprawiono}} - stronę naprawiono w wyniku dyskusji, lub zasugerowano naprawienie przez innych użytkowników. ; Możliwe wywołania szablonu {{s|DNU/instrukcja}}, dla treści przed dyskusją{{dk}} * Nic nie jest wywoływane, gdy strona zgłoszenia istnieje, * Ten szablon omówiony jest wywoływany, w tym szablonie, gdy strona zgłoszenia nie istnieje, wtedy jest zgłaszana kategoria: {{l|Kategoria:Szablon DNU - błędne wywołania|bd=tak}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> rl4f6qgarpnhe7ljbacdf416lunehn4 Moduł:Nazwy/przestrzenie 828 56403 552126 534502 2026-08-17T11:00:29Z Persino 2851 552126 Scribunto text/plain local p={}; p.LoadJson=function(nazwa_strony) local uchwyt_strony_json = mw.title.makeTitle('',"Module:Nazwy/"..nazwa_strony..".json"); local tekst_json=uchwyt_strony_json:getContent(); return mw.text.jsonDecode(tekst_json); end; local s={}; s.tabnp={ ["Project"] = "Wikibooks:Administratorzy", ["Help"] = "Pomoc:Spis treści", ["Template"] = "Szablon:Ek", ["Module"] = "Moduł:Wikidane", ["Category"] = "Kategoria:Szablony", ["Wikijunior"] = "Wikijunior:Strona główna", ["Portal"] = "Portal:Matematyka", ["Wikiproject"] = "Wikiprojekt:Matematyka", ["Special"] = "Specjalna:Strony specjalne", }; s.podstawowe_przestrzenie_nazw=p.LoadJson("podstawowe_przestrzenie_nazw"); s.charakterystyczne_przestrzenie_nazw=p.LoadJson("charakterystyczne_przestrzenie_nazw"); s.tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron={ ["(main)"]={"","Pomoc:Jak edytować artykuły",}, ["Wikijunior"]={"","Wikijunior:Strona główna",}, ["User"]={"w","Wikipedia:Strona użytkownika",}, ["Project"]={"","Kategoria:Metastrony Wikibooks",}, ["File"]={"w","Pomoc:Ilustrowanie",}, ["MediaWiki"]={"w","Pomoc:Przestrzeń nazw/MediaWiki",}, ["Template"]={"","Wikibooks:Szablony",}, ["Help"]={"","Pomoc:Spis treści",}, ["Category"]={"w","Pomoc:Kategorie",}, ["Module"]={"w","Wikipedia:Lua",}, ["Gadget"]={"w","Wikipedia:Narzędzia",}, ["Media"]={"w","Pomoc:Ilustrowanie",}, ["Special"]={"","Specjalna:Strony specjalne",}, }; s.przypadki_odmiany_rzeczownikowe={ ["m"]="mianownik", ["d"]="dopełniacz", ["c"]="celownik", ["b"]="biernik", ["mj"]="miejscownik", ["n"]="nadrzędnik", ["w"]="wołacz", }; s.lista_kody_projektu_wraz_z_ich_nazwami_stron={ ["w"]={ [1]="Wikipedia", ["mianownik"]="Wikipedia", ["dopełniacz"]="Wikipedii", ["celownik"]="Wikipedii", ["biernik"]="Wikipedię", ["miejscownik"]="Wikipedią", ["nadrzędnik"]="Wikipedii", ["wołacz"]="Wikipedio", }, ["b"]={ [1]="Wikibooks", ["mianownik"]="Wikibooks", ["dopełniacz"]="Wikibooksa", ["celownik"]="Wikibooksowi", ["biernik"]="Wikibooksa", ["miejscownik"]="Wikipooksie", ["nadrzędnik"]="Wikibooksem", ["wołacz"]="Wikibooksie", }, ["wikt"]={ [1]="Wikisłownik", ["mianownik"]="Wikisłownik", ["dopełniacz"]="Wikisłownika", ["celownik"]="Wikisłownikowi", ["biernik"]="Wikisłownik", ["miejscownik"]="Wikisłowniku", ["nadrzędnik"]="Wikisłownikiem", ["wołacz"]="Wikisłowniku", }, ["q"]={ [1]="Wikicytaty", ["mianownik"]="Wikicytaty", ["dopełniacz"]="Wikicytatów", ["celownik"]="Wikicytatom", ["biernik"]="Wikicytaty", ["miejscownik"]="Wikicytatach", ["nadrzędnik"]="Wikicytatem", ["wołacz"]="Wikicytacie", }, ["s"]={ [1]="Wikiźródła", ["mianownik"]="Wikiźródła", ["dopełniacz"]="Wikiźródeł", ["celownik"]="Wikiźródłom", ["biernik"]="Wikiźródła", ["miejscownik"]="Wikiźródłach", ["nadrzędnik"]="Wikiźródem", ["wołacz"]="Wikicytacie", }, ["voy"]={ [1]="Wikipodróże", ["mianownik"]="Wikipodróże", ["dopełniacz"]="Wikipodróży", ["celownik"]="Wikipodróżom", ["biernik"]="Wikipodróże", ["miejscownik"]="Wikipodróżach", ["nadrzędnik"]="Wikipodróżem", ["wołacz"]="Wikipodróże", }, ["n"]="Wikinews", ["v"]={ [1]="Wikiwersytet", ["mianownik"]="Wikiwersytet", ["dopełniacz"]="Wikiwersyteta", ["celownik"]="Wikiwersytetowi", ["biernik"]="Wikiwersyteta", ["miejscownik"]="Wikiwersytetach", ["nadrzędnik"]="Wikiwersytetem", ["wołacz"]="Wikiwerystecie", }, ["commons"]="Wikimedia Commons", ["wikispecies"]="Wikispecies", ["d"]={ [1]="Wikidane", ["mianownik"]="Wikidane", ["dopełniacz"]="Wikidanych", ["celownik"]="Wikidanym", ["biernik"]="Wikidane", ["miejscownik"]="Wikidanych", ["nadrzędnik"]="Wikidanymi", ["wołacz"]="Wikidane", }, ["mw"]="MediaWiki", ["m"]="Meta-Wiki", ["wikimania"]="Wikimania", } return s; f442t24s4ryaou27ieix7w330tmbcad 552128 552126 2026-08-17T11:11:44Z Persino 2851 552128 Scribunto text/plain local p={}; p.LoadJson=function(nazwa_strony) local uchwyt_strony_json = mw.title.makeTitle('',"Module:Nazwy/"..nazwa_strony..".json"); local tekst_json=uchwyt_strony_json:getContent(); return mw.text.jsonDecode(tekst_json); end; local s={}; s.tabnp={ ["Project"] = "Wikibooks:Administratorzy", ["Help"] = "Pomoc:Spis treści", ["Template"] = "Szablon:Ek", ["Module"] = "Moduł:Wikidane", ["Category"] = "Kategoria:Szablony", ["Wikijunior"] = "Wikijunior:Strona główna", ["Portal"] = "Portal:Matematyka", ["Wikiproject"] = "Wikiprojekt:Matematyka", ["Special"] = "Specjalna:Strony specjalne", }; s.podstawowe_przestrzenie_nazw=p.LoadJson("podstawowe_przestrzenie_nazw"); s.charakterystyczne_przestrzenie_nazw=p.LoadJson("charakterystyczne_przestrzenie_nazw"); s.tabela_przestrzeni_nazw_wraz_z_ich_opisem_wedle_danych_stron={ ["(main)"]={"","Pomoc:Jak edytować artykuły",}, ["Wikijunior"]={"","Wikijunior:Strona główna",}, ["User"]={"w","Wikipedia:Strona użytkownika",}, ["Project"]={"","Kategoria:Metastrony Wikibooks",}, ["File"]={"w","Pomoc:Ilustrowanie",}, ["MediaWiki"]={"w","Pomoc:Przestrzeń nazw/MediaWiki",}, ["Template"]={"","Wikibooks:Szablony",}, ["Help"]={"","Pomoc:Spis treści",}, ["Category"]={"w","Pomoc:Kategorie",}, ["Module"]={"w","Wikipedia:Lua",}, ["Gadget"]={"w","Wikipedia:Narzędzia",}, ["Media"]={"w","Pomoc:Ilustrowanie",}, ["Special"]={"","Specjalna:Strony specjalne",}, }; s.przypadki_odmiany_rzeczownikowe={ ["m"]="mianownik", ["d"]="dopełniacz", ["c"]="celownik", ["b"]="biernik", ["mj"]="miejscownik", ["n"]="nadrzędnik", ["w"]="wołacz", }; s.lista_kody_projektu_wraz_z_ich_nazwami_stron={ ["w"]={ [1]="Wikipedia", ["mianownik"]="Wikipedia", ["dopełniacz"]="Wikipedii", ["celownik"]="Wikipedii", ["biernik"]="Wikipedię", ["miejscownik"]="Wikipedii", ["nadrzędnik"]="Wikipedią", ["wołacz"]="Wikipedio", }, ["b"]={ [1]="Wikibooks", ["mianownik"]="Wikibooks", ["dopełniacz"]="Wikibooksa", ["celownik"]="Wikibooksowi", ["biernik"]="Wikibooksa", ["miejscownik"]="Wikipooksie", ["nadrzędnik"]="Wikibooksem", ["wołacz"]="Wikibooksie", }, ["wikt"]={ [1]="Wikisłownik", ["mianownik"]="Wikisłownik", ["dopełniacz"]="Wikisłownika", ["celownik"]="Wikisłownikowi", ["biernik"]="Wikisłownik", ["miejscownik"]="Wikisłowniku", ["nadrzędnik"]="Wikisłownikiem", ["wołacz"]="Wikisłowniku", }, ["q"]={ [1]="Wikicytaty", ["mianownik"]="Wikicytaty", ["dopełniacz"]="Wikicytatów", ["celownik"]="Wikicytatom", ["biernik"]="Wikicytaty", ["miejscownik"]="Wikicytatach", ["nadrzędnik"]="Wikicytatem", ["wołacz"]="Wikicytacie", }, ["s"]={ [1]="Wikiźródła", ["mianownik"]="Wikiźródła", ["dopełniacz"]="Wikiźródeł", ["celownik"]="Wikiźródłom", ["biernik"]="Wikiźródła", ["miejscownik"]="Wikiźródłach", ["nadrzędnik"]="Wikiźródłem", ["wołacz"]="Wikicytacie", }, ["voy"]={ [1]="Wikipodróże", ["mianownik"]="Wikipodróże", ["dopełniacz"]="Wikipodróży", ["celownik"]="Wikipodróżom", ["biernik"]="Wikipodróże", ["miejscownik"]="Wikipodróżach", ["nadrzędnik"]="Wikipodróżami", ["wołacz"]="Wikipodróże", }, ["n"]="Wikinews", ["v"]={ [1]="Wikiwersytet", ["mianownik"]="Wikiwersytet", ["dopełniacz"]="Wikiwersyteta", ["celownik"]="Wikiwersytetowi", ["biernik"]="Wikiwersyteta", ["miejscownik"]="Wikiwersytetach", ["nadrzędnik"]="Wikiwersytetem", ["wołacz"]="Wikiwerystecie", }, ["commons"]="Wikimedia Commons", ["wikispecies"]="Wikispecies", ["d"]={ [1]="Wikidane", ["mianownik"]="Wikidane", ["dopełniacz"]="Wikidanych", ["celownik"]="Wikidanym", ["biernik"]="Wikidane", ["miejscownik"]="Wikidanych", ["nadrzędnik"]="Wikidanymi", ["wołacz"]="Wikidane", }, ["mw"]="MediaWiki", ["m"]="Meta-Wiki", ["wikimania"]="Wikimania", } return s; se5c5ebxxhn3zvwon954ow8dbbme74a Wikijunior:Polska 104 57530 551991 540795 2026-08-16T15:52:37Z Persino 2851 551991 wikitext text/x-wiki {{Status|-100%|Geografia|junior=Świat ludzi}} {{Plik|plik=Flag of Poland (with coat of arms).svg|auto=tak,15;1|ramka=bezramki}} {{Plik|plik=Wrocław - Jahrhunderthalle1.jpg|auto=tak,15;1|ramka=bezramki}} = Polska = Podręcznik dla dzieci na temat Polski. [[Wikijunior:Polska/Spis treści|Spis treści]] [[Wikijunior:Polska/Wstęp|Wstęp]] c05gipidi5n5jx79bykwgg7x4avq53l Szablon:Opis kategorii/styles.css 10 58001 552026 551151 2026-08-16T17:32:23Z Persino 2851 552026 sanitized-css text/css /**/ @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ column-count:unset !important; column-rule:unset !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible), .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne div.noprint > table:not(.collapsible), .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).plainlinks, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).noprint, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr{ display:block; width:100% !important; box-sizing:border-box !important; margin:0 !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ display:block; box-sizing:border-box !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ width:calc( 100% - 0.25em) !important; margin:0.125em !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td{ width:100% !important; margin:0 !important; } } /**/ body.skin--responsive div.strona-opis-kategorii-overflow{ font-size:1rem; line-height:1.4; } body:not(.skin--responsive) div.strona-opis-kategorii-overflow{ font-size:16px; line-height:1.4; } body.skin-minerva div.strona-opis-kategorii-overflow{ margin-top:0.25em; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox{ margin-top:0 !important; margin-bottom:0.25em !important; margin-left:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek > div:last-child{ margin-bottom:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ margin-top:0 !important; margin-bottom:0.25em !important; } @media all and (max-width:474px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > caption > center{ text-align:left; } } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow{ max-width:100vw; width:100%; overflow:visible; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ min-width:auto; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ display:flex !important; flex-direction:column !important; width:100% !important; max-width:100%; min-width:auto !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek{ order:1 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .siostrzane-zmienna-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .siostrzane-projekty-kategorii-strona-opis-kategorii-infoboksy{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .typ-kategorii-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .strona-opis-kategorii-overflow-zawartość{ order:6 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; margin-top:0 !important; margin-bottom:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > tbody{ column-width:12.25em; display:block; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-projekty-opis-infobox{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-siostrzane-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ width:100% !important; box-sizing:border-box !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość{ order:6 !important; width:auto !important; box-sizing:border-box; min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; width: 100% !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr{ display:flex; flex-direction:row; align-items: stretch; justify-content: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:first-child{ display:flex; flex-direction:column; align-items: stretch; justify-content: center; width:auto !important; border: none; padding: 0.125em 0px 0.125em 0.9em; text-align: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:not(:first-child), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:not(:first-child){ width:100% !important; border: none; padding: 0.25em 0.9em; width: 100%; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child{ margin:0 !important; width:100% !important; } /*div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.wikitable{ margin-bottom:0 !important; }*/ } /**/ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child{ margin-top: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child{ margin-bottom: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p + ul, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p +ul{ margin-top: -0.6em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p{ font-size:inherit; line-height:inherit; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ font-size:calc(0.8125em * 1.036); line-height:1.4; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna{ margin:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div{ border: 1px solid #ccc; border-radius: 5px; padding:0.1875em 0.25em; margin:0.1875em 0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child{ margin-top:0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child{ margin-bottom:0; } div.strona-opis-kategorii-overflow.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x{ padding-bottom:0.3125em; } /*{{Kategoria|Szablony - arkusze stylów}}*/ sbozy5vrdnj9q5kuj4rm0ry117jjh34 552027 552026 2026-08-16T17:34:18Z Persino 2851 Anulowano wersję [[Special:Diff/552026|552026]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) 552027 sanitized-css text/css /**/ @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ column-count:unset !important; column-rule:unset !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible), .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne div.noprint > table:not(.collapsible), .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).plainlinks, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).noprint, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr{ display:block; width:100% !important; box-sizing:border-box !important; margin:0 !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ display:block; box-sizing:border-box !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ width:calc( 100% - 0.25em) !important; margin:0.125em !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td{ width:100% !important; margin:0 !important; } } /**/ body.skin--responsive div.strona-opis-kategorii-overflow{ font-size:1rem; line-height:1.4; } body:not(.skin--responsive) div.strona-opis-kategorii-overflow{ font-size:16px; line-height:1.4; } body.skin-minerva div.strona-opis-kategorii-overflow{ margin-top:0.25em; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox{ margin-top:0 !important; margin-bottom:0.25em !important; margin-left:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek > div:last-child{ margin-bottom:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ margin-top:0 !important; margin-bottom:0.25em !important; } @media all and (max-width:474px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > caption > center{ text-align:left; } } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow{ max-width:100vw; width:100%; overflow:visible; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ min-width:auto; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ display:flex !important; flex-direction:column !important; width:100% !important; max-width:100%; min-width:auto !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek{ order:1 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .siostrzane-zmienna-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .siostrzane-projekty-kategorii-strona-opis-kategorii-infoboksy{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .typ-kategorii-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .strona-opis-kategorii-overflow-zawartość{ order:6 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; margin-top:0 !important; margin-bottom:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > tbody{ column-width:12.25em; display:block; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-projekty-opis-infobox{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-siostrzane-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ width:100% !important; box-sizing:border-box !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość{ order:6 !important; width:auto !important; box-sizing:border-box; min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; width: 100% !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr{ display:flex; flex-direction:row; align-items: stretch; justify-content: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:first-child{ display:flex; flex-direction:column; align-items: stretch; justify-content: center; width:auto !important; border: none; padding: 0.125em 0px 0.125em 0.9em; text-align: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:not(:first-child), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:not(:first-child){ width:100% !important; border: none; padding: 0.25em 0.9em; width: 100%; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child{ margin:0 !important; width:100% !important; } /*div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.wikitable{ margin-bottom:0 !important; }*/ } /**/ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child{ margin-top: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child{ margin-bottom: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p + ul, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p +ul{ margin-top: -0.6em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p{ font-size:inherit; line-height:inherit; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii.fonty_opis_kategorii{ font-size:calc(0.8125em * 1.036); line-height:1.4; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii:not(.fonty_opis_kategorii){ font-size:80%; line-height:1.4; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna{ margin:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div{ border: 1px solid #ccc; border-radius: 5px; padding:0.1875em 0.25em; margin:0.1875em 0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child{ margin-top:0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child{ margin-bottom:0; } div.strona-opis-kategorii-overflow.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x{ padding-bottom:0.3125em; } /*{{Kategoria|Szablony - arkusze stylów}}*/ 25w2nx49y1wnudjsbs2wox3hw5k8h75 552028 552027 2026-08-16T17:45:11Z Persino 2851 552028 sanitized-css text/css /**/ @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ column-count:unset !important; column-rule:unset !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible), .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne div.noprint > table:not(.collapsible), .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).plainlinks, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).noprint, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr{ display:block; width:100% !important; box-sizing:border-box !important; margin:0 !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ display:block; box-sizing:border-box !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ width:calc( 100% - 0.25em) !important; margin:0.125em !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td{ width:100% !important; margin:0 !important; } } /**/ body.skin--responsive div.strona-opis-kategorii-overflow{ font-size:1rem; line-height:1.4; } body:not(.skin--responsive) div.strona-opis-kategorii-overflow{ font-size:16px; line-height:1.4; } body.skin-minerva div.strona-opis-kategorii-overflow{ margin-top:0.25em; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox{ margin-top:0 !important; margin-bottom:0.25em !important; margin-left:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek > div:last-child{ margin-bottom:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ margin-top:0 !important; margin-bottom:0.25em !important; } @media all and (max-width:474px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > caption > center{ text-align:left; } } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow{ max-width:100vw; width:100%; overflow:visible; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ min-width:auto; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ display:flex !important; flex-direction:column !important; width:100% !important; max-width:100%; min-width:auto !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek{ order:1 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .siostrzane-zmienna-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .siostrzane-projekty-kategorii-strona-opis-kategorii-infoboksy{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .typ-kategorii-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .strona-opis-kategorii-overflow-zawartość{ order:6 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; margin-top:0 !important; margin-bottom:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > tbody{ column-width:12.25em; display:block; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-projekty-opis-infobox{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-siostrzane-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ width:100% !important; box-sizing:border-box !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość{ order:6 !important; width:auto !important; box-sizing:border-box; min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; width: 100% !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr{ display:flex; flex-direction:row; align-items: stretch; justify-content: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:first-child{ display:flex; flex-direction:column; align-items: stretch; justify-content: center; width:auto !important; border: none; padding: 0.125em 0px 0.125em 0.9em; text-align: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:not(:first-child), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:not(:first-child){ width:100% !important; border: none; padding: 0.25em 0.9em; width: 100%; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child{ margin:0 !important; width:100% !important; } /*div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.wikitable{ margin-bottom:0 !important; }*/ } /**/ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child{ margin-top: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child{ margin-bottom: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p + ul, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p +ul{ margin-top: -0.6em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p{ font-size:inherit; line-height:inherit; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii.fonty_opis_kategorii{ font-size:calc(0.8125em * 1.036); line-height:1.4; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii:not(.fonty_opis_kategorii){ font-size:calc(0.8125em * 1.036);; line-height:1.4; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna{ margin:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div{ border: 1px solid #ccc; border-radius: 5px; padding:0.1875em 0.25em; margin:0.1875em 0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child{ margin-top:0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child{ margin-bottom:0; } div.strona-opis-kategorii-overflow.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x{ padding-bottom:0.3125em; } /*{{Kategoria|Szablony - arkusze stylów}}*/ k1974saykjhm1boipplj1doa3p4dc31 552029 552028 2026-08-16T17:46:21Z Persino 2851 552029 sanitized-css text/css /**/ @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ column-count:unset !important; column-rule:unset !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible), .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne div.noprint > table:not(.collapsible), .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).plainlinks, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr, .strona_start-inne.mobilne table:not(.collapsible).noprint, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr{ display:block; width:100% !important; box-sizing:border-box !important; margin:0 !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ display:block; box-sizing:border-box !important; } .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > caption, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > th, .strona_start-inne.mobilne div.plainlinks > table:not(.collapsible) > tbody > tr > td, .strona_start-inne.mobilne div.noprint > table:not(.collapsible) > tbody > tr > td{ width:calc( 100% - 0.25em) !important; margin:0.125em !important; } .strona_start-inne.mobilne table:not(.collapsible).plainlinks > caption, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).plainlinks > tbody > tr > td, .strona_start-inne.mobilne table:not(.collapsible).noprint > caption, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > th, .strona_start-inne.mobilne table:not(.collapsible).noprint > tbody > tr > td{ width:100% !important; margin:0 !important; } } /**/ body.skin--responsive div.strona-opis-kategorii-overflow{ font-size:1rem; line-height:1.4; } body:not(.skin--responsive) div.strona-opis-kategorii-overflow{ font-size:16px; line-height:1.4; } body.skin-minerva div.strona-opis-kategorii-overflow{ margin-top:0.25em; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox{ margin-top:0 !important; margin-bottom:0.25em !important; margin-left:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.mójNagłówek > div:last-child{ margin-bottom:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ margin-top:0 !important; margin-bottom:0.25em !important; } @media all and (max-width:474px){ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > caption > center{ text-align:left; } } @media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){ div.strona-opis-kategorii-overflow{ max-width:100vw; width:100%; overflow:visible; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ min-width:auto; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii{ display:flex !important; flex-direction:column !important; width:100% !important; max-width:100%; min-width:auto !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek{ order:1 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .siostrzane-zmienna-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .siostrzane-projekty-kategorii-strona-opis-kategorii-infoboksy{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .typ-kategorii-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .strona-opis-kategorii-overflow-zawartość{ order:6 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.infobox, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; margin-top:0 !important; margin-bottom:0.25em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.siostrzane_projekty.noprint.plainlinks > tbody{ column-width:12.25em; display:block; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-strona-opis-kategorii-infoboksy{ order:2 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.siostrzane-projekty-opis-infobox{ order:3 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-siostrzane-strona-opis-kategorii-infoboksy{ order:4 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy.kategorie-dla-kategorii-strona-opis-kategorii-infoboksy{ order:5 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > .mójNagłówek, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > .szablon_nawigacyjny_konserwacyjny, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table.noprint.plainlinks:not(.collapsible), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > div.noprint.plainlinks{ width:100% !important; box-sizing:border-box !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość{ order:6 !important; width:auto !important; box-sizing:border-box; min-width:auto !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > th > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość{ min-width:auto !important; width: 100% !important; box-sizing:border-box; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr{ display:flex; flex-direction:row; align-items: stretch; justify-content: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:first-child{ display:flex; flex-direction:column; align-items: stretch; justify-content: center; width:auto !important; border: none; padding: 0.125em 0px 0.125em 0.9em; text-align: center; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > th:not(:first-child), div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-infoboksy > table:not(.siostrzane_projekty):not(.opis_kategorii-tabela_nawigacyjna) > tbody > tr > td:not(:first-child){ width:100% !important; border: none; padding: 0.25em 0.9em; width: 100%; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > th:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td:first-child{ margin:0 !important; width:100% !important; } /*div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.wikitable{ margin-bottom:0 !important; }*/ } /**/ div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:first-child{ margin-top: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p:last-child{ margin-bottom: 0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p + ul, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p +ul{ margin-top: -0.6em !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div > p{ font-size:inherit; line-height:inherit; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii.fonty_opis_kategorii{ font-size:calc(0.8125em * 1.036); line-height:1.4; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii:not(.fonty_opis_kategorii){ font-size:calc(0.8125em * 1.036); line-height:1.4; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna{ margin:0 !important; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div{ border: 1px solid #ccc; border-radius: 5px; padding:0.1875em 0.25em; margin:0.1875em 0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:first-child{ margin-top:0; } div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość > div.strona-opis-kategorii-zawartość > div:last-child{ margin-bottom:0; } div.strona-opis-kategorii-overflow.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x, div.strona-opis-kategorii-overflow > div.strona-opis-kategorii > table.tabela_nawigacyjna.opis_kategorii-tabela_nawigacyjna > tbody > tr > td > div.strona-opis-kategorii-overflow-zawartość.mw-overflow-x.mw-scrollbar-overflow-x{ padding-bottom:0.3125em; } /*{{Kategoria|Szablony - arkusze stylów}}*/ g6cdvubfshjbjdw921ogswwb3e8dp0i Moduł:StronicowyParser/NumerLubNazwaArtykułówKsiążek 828 58936 551962 551851 2026-08-16T12:12:08Z Persino 2851 551962 Scribunto text/plain local p={}; p["PobierzNumerArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and((numer_spisu)and(numer_spisu==1)) and( (#tab_numer>0)and ((tonumber(tab_numer[1])or 1)>1) or(#tab_poziomowo>0)and ((tonumber(tab_numer[1])or 1)>1) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and((numer_spisu)and(numer_spisu==1)) and( (#tab_numer>0)and ((tonumber(tab_numer[1])or 1)>1) or(#tab_poziomowo>0)and ((tonumber(tab_numer[1])or 1)>1) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu) and( (not glowny_spis_tresci_lub_rozdzial_ksiazki) or((not glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and(glowny_spis_tresci_lub_rozdzial_ksiazki)) )and(numer_rozdzialu~="") )then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return false; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; jf4v7klrpehj7msku2my5q9ljom2xhx 551963 551962 2026-08-16T12:30:17Z Persino 2851 551963 Scribunto text/plain local p={}; p["PobierzNumerArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and( ((#tab_numer+#tab_poziomowo)>1) or((#tab_numer==1)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo==1)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and( ((#tab_numer+#tab_poziomowo)>1) or((#tab_numer==1)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo==1)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu) and( (not glowny_spis_tresci_lub_rozdzial_ksiazki) or((not glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and(glowny_spis_tresci_lub_rozdzial_ksiazki)) )and(numer_rozdzialu~="") )then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return false; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; r9hzq9rhry7uemzvotq1y32hfe2mbjo 551964 551963 2026-08-16T12:47:45Z Persino 2851 551964 Scribunto text/plain local p={}; p["PobierzNumerArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and( ( ((numer_spisu)and(numer_spisu==1)) or((#tab_numer>0)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo>0)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) or( (numer_spisu)and(numer_spisu>1) and( ((#tab_numer==1)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo==1)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and( ( ((numer_spisu)and(numer_spisu==1)) or((#tab_numer>0)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo>0)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) or( (numer_spisu)and(numer_spisu>1) and( ((#tab_numer==1)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo==1)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu) and( (not glowny_spis_tresci_lub_rozdzial_ksiazki) or((not glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and(glowny_spis_tresci_lub_rozdzial_ksiazki)) )and(numer_rozdzialu~="") )then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return false; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; l1qvvgcx6dl44vm7dlkk7d4l63tox83 551965 551964 2026-08-16T12:57:45Z Persino 2851 551965 Scribunto text/plain local p={}; p["PobierzNumerArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and( ( ((numer_spisu)and(numer_spisu==1)) or((#tab_numer>0)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo>0)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) or( (numer_spisu)and(numer_spisu>1) and( ((#tab_numer==1)and(#tab_poziomowo==0)and((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo==1)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and( ( ((numer_spisu)and(numer_spisu==1)) or((#tab_numer>0)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo>0)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) or( (numer_spisu)and(numer_spisu>1) and( ((#tab_numer==1)and(#tab_poziomowo==0)and((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo==1)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu) and( (not glowny_spis_tresci_lub_rozdzial_ksiazki) or((not glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and(glowny_spis_tresci_lub_rozdzial_ksiazki)) )and(numer_rozdzialu~="") )then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return false; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; a0g363m7vs53tk1x9pzi8d9sx65ii5s 551967 551965 2026-08-16T13:11:52Z Persino 2851 551967 Scribunto text/plain local p={}; p["PobierzNumerArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and((nazwa_spisu)and(numer_spisu)) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.WarunekSpisuWoluminu(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.WarunekSpisuWoluminu(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo) ) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu) and( (not glowny_spis_tresci_lub_rozdzial_ksiazki) or((not glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and(glowny_spis_tresci_lub_rozdzial_ksiazki)) )and(numer_rozdzialu~="") )then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return false; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; 6duonwm349r2vh3yjlavipgqtidy0g3 551968 551967 2026-08-16T13:22:58Z Persino 2851 551968 Scribunto text/plain local p={}; p["PobierzNumerArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and((nazwa_spisu)and(numer_spisu)) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.WarunekSpisuWoluminu(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and((nazwa_spisu)and(numer_spisu)) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.WarunekSpisuWoluminu(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu) and( (not glowny_spis_tresci_lub_rozdzial_ksiazki) or((not glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and(glowny_spis_tresci_lub_rozdzial_ksiazki)) )and(numer_rozdzialu~="") )then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return false; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; bpyagk5ojn7bmpvxrvdbyv3lharm9u9 551990 551968 2026-08-16T15:46:42Z Persino 2851 551990 Scribunto text/plain local p={}; p["PobierzNumerArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local nazwa_artykulu,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((((dane==2)or(dane==3))and(artykul=="")and(rozdzial==nazwa_artykulu))or(((dane==1)or(dane==3))and(artykul~="")and((nazwa_artykulu==artykul)or(((przekierowanie)and(parametry_modul.TypeString(przekierowanie))and(przekierowanie==nazwa_artykulu))or(parametry_modul.TypeTable(przekierowanie)and(przekierowanie[1]==nazwa_artykulu))))))then if(s==ktory)then if(poziomowo)then local numer_artykulu=(table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and((nazwa_spisu)and(numer_spisu)) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.WarunekSpisuWoluminu(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={}; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki; else return i,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; s=s+1; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzNazwęArtykułu"]=function(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_woluminowych; local s=1; local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local dane_szablonu; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki) ---- dane_szablonu=dane_szablonu or pierwszy_parametr_szablonu(); local numer,czy_nazwa,dane=dane_szablonu[1],dane_szablonu[2],dane_szablonu[3]; ---- if((not poziomowo)and(i==numer))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; elseif(poziomowo)then local function NumerArtykulu(tab_numer,tab_poziomowo) return (table.concat(tab_numer,".")..((#tab_numer>0) and ((#tab_poziomowo>0) and "." or "") or "")..table.concat(tab_poziomowo,".")); end; local function WynikArtykulowyZNumeru(numer_artykulu) if((((dane==2)or(dane==3))and(artykul=="")and(numer_artykulu==numer))or(((dane==1)or(dane==3))and(artykul~="")and(numer_artykulu==numer)))then if(s==ktory)then if(artykul~="")then local wartosc=(not czy_nazwa) and artykul or (nazwa or artykul); return wartosc; else return rozdzial; end; else s=s+1; end; end; end; local numer_artykulu=NumerArtykulu(tab_numer,tab_poziomowo); if((not nazwa_spisu)or(not numer_spisu) or ( (not glowny_spis_tresci_lub_rozdzial_ksiazki) and((nazwa_spisu)and(numer_spisu)) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.WarunekSpisuWoluminu(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo) ) or((glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and((numer_spisu or 1)>1)) )then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; elseif((numer_spisu)and(numer_spisu==1))then if(glowny_spis_tresci_lub_rozdzial_ksiazki)and(glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; else local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_artykulu); tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu); local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; else local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(not numer_spisu_tresci)then local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; local tab_numer_artykulu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci); tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu; local numer_artykulu=table.concat(tab_numer_artykulu,"."); local wynik=WynikArtykulowyZNumeru(numer_artykulu); if(wynik)then glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki; end; end; end; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; end; p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki,kodowanie_nie_json) local tabela_listy_danych_analizy_ksiazki=tabela_listy_danych_analizy_ksiazki or mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_woluminowych; local tab_dane_ksiazki=nil; local s=1; local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local args_kopia; local tab_spis; local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty"); local odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu; local tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu); setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter); local pierwszy_spis_tresci=nil; local artykul_spisowy=nil; local glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=nil; local stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne"); local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url) if((artykul_spisu)and(nazwa_spisu))then if((artykul_spisu~=nazwa_spisu))then if(not artykul_spisowy)then return false;else return true;end; elseif((not artykul_spisowy)and(artykul_spisu==nazwa_spisu))then artykul_spisowy=true; end; end; if(not tab_dane_ksiazki)then tab_dane_ksiazki={};end; if(not tab_dane_ksiazki[rozdzial])then tab_dane_ksiazki[rozdzial]={};end; local tab_rozdzial=tab_dane_ksiazki[rozdzial]; local numer_rozdzialu=tab_numer and table.concat(tab_numer,".") or ""; if((nazwa_spisu)and(numer_spisu) and( (not glowny_spis_tresci_lub_rozdzial_ksiazki) or((not glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and(glowny_spis_tresci_lub_rozdzial_ksiazki)) )and(numer_rozdzialu~="") )then local numer_spisu_tresci;local glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci; if((numer_spisu)and(numer_spisu==1))then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); else if((not tab_spis)or(not tab_spis[nazwa_spisu]))then if(not args_kopia)then local args=parametry_modul.PobierzArgsParametry(frame,true); args_kopia=parametry_modul["KopiujRekurencyjnieTabelęElementów"](args); end; args_kopia[1]=nazwa_spisu; args_kopia["dane"]="1"; args_kopia["który"]="1"; numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=p["PobierzNumerArtykułu"]({args=args_kopia,},tabela_listy_danych_analizy_ksiazki); if(not tab_spis)then tab_spis={};end; tab_spis[nazwa_spisu]={numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci,}; else local tab_element=tab_spis[nazwa_spisu]; numer_spisu_tresci=tab_element[1]; glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=tab_element[2]; end; if(numer_spisu_tresci)then local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci); tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu) or tab_numer_rozdzialu; numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; elseif((not pierwszy_spis_tresci)and(nazwa_spisu)and(numer_spisu)and(not glowny_spis_tresci_lub_rozdzial_ksiazki_poprz)and(glowny_spis_tresci_lub_rozdzial_ksiazki)and(numer_rozdzialu~=""))then local czy_spis_tresci=tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial]; if(czy_spis_tresci)then pierwszy_spis_tresci=true; local tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.ZamienNumerArtykuluNaTabele(numer_rozdzialu); tab_numer_rozdzialu=stronicowyparser_numerlubnazwaartykulowksiazek_pomocne_modul.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu); numer_rozdzialu=table.concat(tab_numer_rozdzialu,"."); end; end; if(not tab_rozdzial[numer_rozdzialu])then tab_rozdzial[numer_rozdzialu]={}; end; local tab_numer_rozdzialu=tab_rozdzial[numer_rozdzialu]; if(not tab_numer_rozdzialu[artykul])then tab_numer_rozdzialu[artykul]={}; end; local tab_artykul=tab_numer_rozdzialu[artykul]; local numer_artykulu=tab_poziomowo and table.concat(tab_poziomowo,".") or ""; if(not tab_artykul[numer_artykulu])then tab_artykul[numer_artykulu]={}; end; local tab_numer_artykulu=tab_artykul[numer_artykulu]; local czy_tabelka=parametry_modul.TypeTable(przekierowanie); ---- table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); ---- s=s+1; glowny_spis_tresci_lub_rozdzial_ksiazki_poprz=glowny_spis_tresci_lub_rozdzial_ksiazki; return false; end; local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; end; return p; btwgrtwixh06yyybirownmef52cenh5 Szablon:Uprawa - roślina infobox/nazwa 10 61370 552085 519061 2026-08-17T06:55:36Z Persino 2851 552085 wikitext text/x-wiki <includeonly>{{#invoke:Specjalne|UsuńZnakiSpecjalne|tekst={{#invoke:Specjalne|ZamieńLinkiWewnętrzneNaTekst|tekst={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}|wyspecjalizowana=tak}}|wyspecjalizowana=tak}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox}}, określający nazwę linku szablonów, podaną przez parametr: {{Parametr|nazwa}}, przed usunięciem cudzysłowów, projektu użytych w szablonie. ; Operacje robione przez szablon po kolei{{dk}} * Szablon w parametrze: {{Code|nazwa}}, zamienia linki wewnętrzne na zwykły tekst, a jeżeli nie ma tego parametru podanego, to domyslną nazwąjest nazwa substrony wskazaną przez szablon: {{s|NAZWASUBSTRONY}}, * Szablon usuwa znaki specjalne w nazwie, jakimi są symbole pogrubienia, czy cytowania. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> ip83b67i55b0tjewdnp9vs5c8iu3cfg 552091 552085 2026-08-17T07:34:41Z Persino 2851 552091 wikitext text/x-wiki <includeonly>{{#invoke:Specjalne|UsuńZnakiSpecjalne|tekst={{#invoke:Specjalne|ZamieńLinkiWewnętrzneNaTekst|tekst={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}|wyspecjalizowana=tak}}|wyspecjalizowana=tak}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox/siostrzane}}, określający nazwę linku szablonów, podaną przez parametr: {{Parametr|nazwa}}, przed usunięciem cudzysłowów, projektu użytych w szablonie. ; Operacje robione przez szablon po kolei{{dk}} * Szablon w parametrze: {{Code|nazwa}}, zamienia linki wewnętrzne na zwykły tekst, a jeżeli nie ma tego parametru podanego, to domyslną nazwąjest nazwa substrony wskazaną przez szablon: {{s|NAZWASUBSTRONY}}, * Szablon usuwa znaki specjalne w nazwie, jakimi są symbole pogrubienia, czy cytowania. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 0mwf4vg4qjb4f8x871lj4gczuea5bcj 552095 552091 2026-08-17T07:40:45Z Persino 2851 552095 wikitext text/x-wiki <includeonly>{{#invoke:Specjalne|UsuńZnakiSpecjalne|tekst={{#invoke:Specjalne|ZamieńLinkiWewnętrzneNaTekst|tekst={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}|wyspecjalizowana=tak}}|wyspecjalizowana=tak}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox/siostrzane}}, określający nazwę linku szablonów, podaną przez parametr: {{Parametr|nazwa}}, przed usunięciem cudzysłowów, projektu użytych w szablonie. ; Operacje robione przez szablon po kolei{{dk}} * Szablon w parametrze: {{Code|nazwa}}, zamienia linki wewnętrzne na zwykły tekst, a jeżeli nie ma tego parametru podanego, to domyslną nazwą jest nazwa substrony wskazaną przez szablon: {{s|NAZWASUBSTRONY}}, * Szablon usuwa znaki specjalne w nazwie, jakimi są symbole pogrubienia, czy cytowania. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> ft3942c0tqw218vatjx27devq6yhhun 552096 552095 2026-08-17T07:42:16Z Persino 2851 552096 wikitext text/x-wiki <includeonly>{{#invoke:Specjalne|UsuńZnakiSpecjalne|tekst={{#invoke:Specjalne|ZamieńLinkiWewnętrzneNaTekst|tekst={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}|wyspecjalizowana=tak}}|wyspecjalizowana=tak}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox/siostrzane}}, określający nazwę linku szablonów, podaną przez parametr: {{Parametr|nazwa}}, przed usunięciem cudzysłowów, projektu użytych w szablonie. ; Operacje robione przez szablon po kolei{{dk}} * Szablon w parametrze: {{Code|nazwa}}, zamienia linki wewnętrzne na zwykły tekst, a jeżeli nie ma tego parametru podanego, to domyslną nazwą jest nazwa substrony wskazaną przez szablon: {{s|NAZWASUBSTRONY}}, * Szablon usuwa znaki specjalne w nazwie, jakimi są symbole pogrubienia, czy cytowania. Jest to parametr nazwy opisu dla danego szablonu projektu. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> jvyyorcge9tfksr65efrqna0o3o5pu3 552097 552096 2026-08-17T07:42:52Z Persino 2851 552097 wikitext text/x-wiki <includeonly>{{#invoke:Specjalne|UsuńZnakiSpecjalne|tekst={{#invoke:Specjalne|ZamieńLinkiWewnętrzneNaTekst|tekst={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}|wyspecjalizowana=tak}}|wyspecjalizowana=tak}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox/siostrzane}}, określający nazwę linku szablonów, podaną przez parametr: {{Parametr|nazwa}}, przed usunięciem cudzysłowów, projektu użytych w szablonie. ; Operacje robione przez szablon po kolei{{dk}} * Szablon w parametrze: {{Code|nazwa}}, zamienia linki wewnętrzne na zwykły tekst, a jeżeli nie ma tego parametru podanego, to domyslną nazwą jest nazwa substrony wskazaną przez szablon: {{s|NAZWASUBSTRONY}}, * Szablon usuwa znaki specjalne w nazwie, jakimi są symbole pogrubienia, czy pochylenia. Jest to parametr nazwy opisu dla danego szablonu projektu. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 12pw0pwu1zwoudyp255xtlrppz4lll3 552098 552097 2026-08-17T07:43:32Z Persino 2851 552098 wikitext text/x-wiki <includeonly>{{#invoke:Specjalne|UsuńZnakiSpecjalne|tekst={{#invoke:Specjalne|ZamieńLinkiWewnętrzneNaTekst|tekst={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}|wyspecjalizowana=tak}}|wyspecjalizowana=tak}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox/siostrzane}}, określający nazwę linku szablonów, podaną przez parametr: {{Parametr|nazwa}}, przed usunięciem cudzysłowów, projektu użytych w szablonie. ; Operacje robione przez szablon po kolei{{dk}} * Szablon w parametrze: {{Code|nazwa}}, zamienia linki wewnętrzne na zwykły tekst, a jeżeli nie ma tego parametru podanego, to domyslną nazwą jest nazwa substrony wskazaną przez szablon: {{s|NAZWASUBSTRONY}}, * Szablon usuwa znaki specjalne w nazwie, jakimi są symbole pogrubienia, czy pochylenia, mechanizmu '''MediaWiki''', za pomocą cudzysłowów. Jest to parametr nazwy opisu dla danego szablonu projektu. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> rmaeaw2dvt2t7hkm5r02e9kp0wp1ixx Szablon:Ekspresowe kasowanie/admin 10 61372 552104 508206 2026-08-17T08:39:46Z Persino 2851 552104 wikitext text/x-wiki <includeonly>{{#switch: {{NAMESPACE}} |Plik = <small>'''Administratorze!''' Jeśli przyczyną skasowania tego pliku jest '''przeniesienie do Commons''', sprawdź dokładnie, czy zostały zachowane '''wszystkie warunki licencji''', a jeśli nie jest to Twoją mocną stroną, '''pozostaw decyzję innym!'''</small> |Szablon = <small>Administratorze! Pamiętaj, żeby przed skasowaniem szablonu sprawdzić [[Specjalna:Whatlinkshere/{{FULLPAGENAME}}|linkujące]], [[{{TALKPAGENAME}}|dyskusję]] i [{{fullurl:{{FULLPAGENAME}}|action=history}} historię zmian] ([{{fullurl:{{FULLPAGENAME}}|diff=cur}} ostatnia zmiana] wykonana przez [[User:{{REVISIONUSER}}|{{REVISIONUSER}}]]). Pamiętaj, że usunięcie często używanego szablonu może być katastrofalne w skutkach!</small> |Kategoria = <small>Administratorze! Pamiętaj, żeby przed skasowaniem kategorii sprawdzić [[Specjalna:Whatlinkshere/{{FULLPAGENAME}}|linkujące]], [[{{TALKPAGENAME}}|dyskusję]] i [{{fullurl:{{FULLPAGENAME}}|action=history}} historię zmian] ([{{fullurl:{{FULLPAGENAME}}|diff=cur}} ostatnia zmiana] wykonana przez [[User:{{REVISIONUSER}}|{{REVISIONUSER}}]]). Pamiętaj, że usunięcie dużej kategorii może być katastrofalne w skutkach!</small> |Dyskusja|Dyskusja Wikijuniora|Dyskusja szablonu|Dyskusja kategorii|Dyskusja pliku|Dyskusja wikipedysty=<small>Administratorze! Pamiętaj, żeby przed skasowaniem dyskusji sprawdzić [[Specjalna:Whatlinkshere/{{FULLPAGENAME}}|linkujące]] i [{{fullurl:{{FULLPAGENAME}}|action=history}} historię zmian] ([{{fullurl:{{FULLPAGENAME}}|diff=cur}} ostatnia zmiana] wykonana przez [[User:{{REVISIONUSER}}|{{REVISIONUSER}}]]).</small> |<small>Administratorze! Pamiętaj, żeby przed skasowaniem artykułu sprawdzić [[Specjalna:Whatlinkshere/{{FULLPAGENAME}}|linkujące]], [[{{TALKPAGENAME}}|dyskusję]] i [{{fullurl:{{FULLPAGENAME}}|action=history}} historię zmian] ([{{fullurl:{{FULLPAGENAME}}|diff=cur}} ostatnia zmiana] wykonana przez [[User:{{REVISIONUSER}}|{{REVISIONUSER}}]]).</small>}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Ekspresowe kasowanie}}, określający dodatkowe opcje, w postaci opisu usuwanej strony, dla administratorów, który usuwa daną, wskazaną prez szablon, stronę. * Szablon działa dla przestrzeni nazw: ** przedmiotowych: {{Np|File|link=tak}}, {{Np|Template|link=tak}} i {{Np|Category|link=tak}}, ** dyskusji: {{Np|Talk|link=tak}},{{Np|Wikijunior talk|link=tak}}, {{Np|Template talk|link=tak}}, {{Np|Category talk|link=tak}}, {{Np|File talk|link=tak}} i {{Np|User talk|link=tak}}, ** dla pozostałych: wtedy jest komunikat domyślny dla administratora. Szablon drukuje komunikaty, jakie są wyświetlane w monicie usuwania danej strony przez administratora. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 8xzr4o4npe6u79pk72sjc384xzuioc7 Szablon:Ekspresowe kasowanie/usuń 10 61373 552102 508207 2026-08-17T08:19:41Z Persino 2851 552102 wikitext text/x-wiki <includeonly>{{#if:{{{1|{{{powód|}}}}}}|{{Admin usuń|{{#switch: {{{1|{{{powód|}}}}}} |test|eksperyment|eks = eksperyment edycyjny, patrz: [[Wikibooks:Witamy nowicjuszy|pierwsze kroki]] |substub = zbyt mała ilość treści, patrz: [[w:Wikipedia:Zalążek artykułu#Subzalążki (substuby)|zalążek artykułu]] |ency = treść [[w:Wikipedia:Encyklopedyczność|encyklopedyczna]], patrz: [[Wikibooks:Witamy nowicjuszy|pierwsze kroki]] |hoax = prawdopodobna [[w:Wikipedia:Weryfikowalność|mistyfikacja]], patrz: [[w:Wikipedia:Weryfikowalność|weryfikowalność]] |or|OR = prawdopodobna twórczość własna, patrz: [[w:Wikipedia:Nie przedstawiamy twórczości własnej|nie przedstawiamy twórczości własnej]] |reklama|advert|ad = skrajna forma reklamy, patrz: [[Wikibooks:Neutralny punkt widzenia|neutralny punkt widzenia]] |bezsens|bzdety|bełkot|bzdury|głupoty = treść niezrozumiała, patrz: [[w:Wikipedia:Głupie dowcipy i czysty bezsens|czysty bezsens]] |wulgaryzmy|wulg|ataki osobiste|osobiste|wandalizm|wandal = [[w:Wikipedia:Wandalizm|wandalizm]] i/lub ataki osobiste, patrz: [[Wikibooks:Wikietykieta|wikietykieta]] |dane osobowe = upublicznienie danych osobowych |zniesławienie|libel = z [[WB:EK|eka]], podany powód: zniesławienie |administracyjne|techniczne|technikalia|tech = pozostałości po wykonywaniu operacji administracyjnych |redir|przekierowanie|redirect = błędne lub niepotrzebne przekierowanie |wygłupy|wygłup|dowcip|żart = wygłupy |npa|NPA|plagiat|copypaste|kopiuj-wklej = naruszenie praw autorskich, patrz: [[Wikibooks:Prawa autorskie|prawa autorskie]] |moje = na prośbę autora |autotranslator|translator|tłumacz = tekst przetłumaczony z translatora |link = nieaktualna informacja o martwym linku zewnętrznym |infoboks|infobox = nieaktualna informacja o braku infoboksu |wstawiony|nieaktualne = strona zawierała nieaktualny komunikat o problemie |plik = usunięto lokalny opis, plik znajduje się w [[w:Wikimedia Commons]] |#default = z [[WB:EK|eka]], podany powód: {{{1|{{{powód|}}}}}}}}}}}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Ekspresowe kasowanie}}, określający powód do usunięcia danej strony wskazaną przez szablon. Możliwwe zmienne: * {{Code|1}} lub {{Code|powód}} - podany parametr powodu, który zmienna ma przepisany określony opis, lub opis przy pomocy tej zmiennej możemy opisać samemu, ten parametr jest podawany jako parametr przez szablon nadrzędny. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 2jk2jzdei4t1i0gqj0yqee8wca1nem6 Szablon:Ekspresowe kasowanie/wstęp 10 61374 552103 508209 2026-08-17T08:29:15Z Persino 2851 552103 wikitext text/x-wiki <includeonly><span style="font-size:100%">'''Jeden z użytkowników Wikibooks oznaczył t{{#switch: {{NAMESPACE}} |Plik = en plik jako kwalifikujący |Szablon = en szablon jako kwalifikujący |Kategoria = ę kategorię jako kwalifikującą |ę stronę jako kwalifikującą}} się do [[w:Wikipedia:Zasady ekspresowego kasowania|natychmiastowego skasowania]].'''</span> <span style="font-size:95%">W najbliższym czasie [[Wikibooks:Administratorzy|administratorzy Wikibooks]] zweryfikują to zgłoszenie.<br />Jeśli nie zgadzasz się z oceną wikipedysty, wypowiedz się {{#switch: {{NAMESPACE}}|Dyskusja|Dyskusja szablonu|Dyskusja pliku|Dyskusja wikipedysty|Dyskusja kategorii = poniżej|na [[{{TALKPAGENAME}}|stronie dyskusji]]}}. Autorów prosimy o zapoznanie się z informacjami o [[w:Pomoc:Dlaczego mój artykuł został usunięty?|najczęstszych powodach usuwania artykułów]].</span>{{#if:{{#invoke:Łatki|są interwiki}}|:<strong>Uwaga! Strona ma {{#invoke:Łatki|są interwiki}} interwiki w Wikidanych pomiędzy wszystkimi siostrzanymi projektami.</strong>}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Ekspresowe kasowanie}}, określający wstęp, w szablonie, do usunięcia danej wskazanej przez szablon strony. * On ustawia wstęp w pierwszy akapicie w zależności od przestrzeni nazw, tzn. on zależy od: {{Np|File|link=tak}}, {{Np|Template|link=tak}} i {{Np|Category|link=tak}}, dla pozostałych przestrzeni nazw szablon wyświetla komunika domyślny. * W drugim akapicie dla przestrzeni nazw: {{Np|Talk|link=tak}}, {{Np|Template talk|link=tak}}, {{Np|File talk|link=tak}}, {{Np|User talk|link=tak}} i {{Np|Category talk|link=tak}}, dla pozostałych przestrzeni nazw komunikat jest domyślny. * Podszablon uruchamia funkcję języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn.: {{Code|{{m|Łatki|są interwiki}}}}, wskazujący ile jest interwiki dango typu. Te dane są ściągane z {{NAZWASERWISU|Wikidanych|link=tak|klucz projektu=d}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> ghst8e1ndth39foc58jkp63n95dgtmp Napary/Trawa cytrynowa 0 61465 552134 542208 2026-08-17T11:34:38Z Persino 2851 552134 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Trawa cytrynowa}} {{Uprawa - roślina infobox | nazwa = Trawa cytrynowa | obrazek = Cymbopogon citratus 4zz.jpg | łacina = Cymbopogon citratus | nazwy = palczatka cytrynowa, trawa z Cochin, trawa Malabar, trawa cytronelowa | wikipedia = Trawa cytrynowa | wikibooks = Zioła i przyprawy/Trawa cytrynowa | __wikibooks = Trawa cytrynowa | wikispecies = Cymbopogon citratus | wikisłownik = trawa cytrynowa | commons = Category:Cymbopogon citratus }} == Trawa cytrynowa == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * W Azji jest używana do robienia smacznych napojów gaszących pragnienie. * Napoje z trawy cytrynowej działają przeciwzapalnie, przeciwdrobnoustrojowo. * Dzięki zawartym olejkom eterycznym działa [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjnie]], [[Napary/Działanie#Rozkurczowe|rozkurczowo]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]]. * Wspomaga [[Napary/Działanie#Trawienie|trawienie]]. * Wzmacnia odporność. * Przypisywane jej są właściwości przeciwnowotworowe. == Przeciwwskazania == == Napary z trawy cytrynowej == * Smak naparu jest lekko cytrynowy, orzeźwiający i delikatnie słodki. * Napar z trawy cytrynowej można pić zarówno na ciepło, jak i na zimno, np. jako bazę do mrożonych napojów. * Trawa cytrynowa doskonale harmonizuje z [[Napary/bazylia|bazylią]] i różnymi rodzajami [[Napary/Mięta pieprzowa|mięty]]. === Herbata z trawy cytrynowej === * 1-2 łodygi pokrój na kawałki 2,5-5 cm. * Zalej szklanka wrzątku i pozostaw pod przykryciem na 5-7 minut. {{Przypisy}} <noinclude>{{Nawigacja | 1 = Napary | 2 = | 3 = }}</noinclude> ta41jpg9k2d0001w891quay07ktc1ur 552139 552134 2026-08-17T11:45:50Z Persino 2851 552139 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Trawa cytrynowa}} {{Uprawa - roślina infobox | nazwa = Trawa cytrynowa | obrazek = Cymbopogon citratus 4zz.jpg | łacina = Cymbopogon citratus | nazwy = palczatka cytrynowa, trawa z Cochin, trawa Malabar, trawa cytronelowa | wikipedia = Trawa cytrynowa | wikibooks = Zioła i przyprawy/Trawa cytrynowa | _wikibooks = Trawa cytrynowa | wikispecies = Cymbopogon citratus | wikisłownik = trawa cytrynowa | commons = Category:Cymbopogon citratus }} == Trawa cytrynowa == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * W Azji jest używana do robienia smacznych napojów gaszących pragnienie. * Napoje z trawy cytrynowej działają przeciwzapalnie, przeciwdrobnoustrojowo. * Dzięki zawartym olejkom eterycznym działa [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjnie]], [[Napary/Działanie#Rozkurczowe|rozkurczowo]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]]. * Wspomaga [[Napary/Działanie#Trawienie|trawienie]]. * Wzmacnia odporność. * Przypisywane jej są właściwości przeciwnowotworowe. == Przeciwwskazania == == Napary z trawy cytrynowej == * Smak naparu jest lekko cytrynowy, orzeźwiający i delikatnie słodki. * Napar z trawy cytrynowej można pić zarówno na ciepło, jak i na zimno, np. jako bazę do mrożonych napojów. * Trawa cytrynowa doskonale harmonizuje z [[Napary/bazylia|bazylią]] i różnymi rodzajami [[Napary/Mięta pieprzowa|mięty]]. === Herbata z trawy cytrynowej === * 1-2 łodygi pokrój na kawałki 2,5-5 cm. * Zalej szklanka wrzątku i pozostaw pod przykryciem na 5-7 minut. {{Przypisy}} <noinclude>{{Nawigacja | 1 = Napary | 2 = | 3 = }}</noinclude> nuw40n92dopq94sj37i4qgm59dk3ol9 Ekoogrodnictwo/Rośliny użytkowe/Trawa cytrynowa 0 61468 552135 542211 2026-08-17T11:36:46Z Persino 2851 552135 wikitext text/x-wiki {{Podrozdział|[[Ekoogrodnictwo]]|Trawa cytrynowa}} {{Uprawa - roślina infobox | nazwa = Trawa cytrynowa | obrazek = Vista de tallos y hojas de yerba luisa (Cymbopogon citratus).jpg | łacina = Cymbopogon citratus | wikipedia = Trawa cytrynowa | wikibooks 1 = Zioła i przyprawy/Trawa cytrynowa | __wikibooks 1 = Trawa cytrynowa | wikibooks 2 = Napary/Trawa cytrynowa | __wikibooks 2 = Trawa cytrynowa | wikispecies = Cymbopogon citratus | commons = Category:Cymbopogon citratus | wikisłownik = trawa cytrynowa }} == Uprawa == == Rozmnażanie == == Wskazówki biologiczne == * dobrzy sąsiedzi * źli sąsiedzi: [[Ekoogrodnictwo/Rośliny_użytkowe/Rozmaryn|rozmaryn]], [[Ekoogrodnictwo/Rośliny_użytkowe/Szałwia lekarska|szałwia lekarska]] == Wykorzystanie == == Odmiany == i0gnrnjnehshtntirz4i6tloo8ptdsk 552140 552135 2026-08-17T11:46:13Z Persino 2851 552140 wikitext text/x-wiki {{Podrozdział|[[Ekoogrodnictwo]]|Trawa cytrynowa}} {{Uprawa - roślina infobox | nazwa = Trawa cytrynowa | obrazek = Vista de tallos y hojas de yerba luisa (Cymbopogon citratus).jpg | łacina = Cymbopogon citratus | wikipedia = Trawa cytrynowa | wikibooks 1 = Zioła i przyprawy/Trawa cytrynowa | _wikibooks 1 = Trawa cytrynowa | wikibooks 2 = Napary/Trawa cytrynowa | _wikibooks 2 = Trawa cytrynowa | wikispecies = Cymbopogon citratus | commons = Category:Cymbopogon citratus | wikisłownik = trawa cytrynowa }} == Uprawa == == Rozmnażanie == == Wskazówki biologiczne == * dobrzy sąsiedzi * źli sąsiedzi: [[Ekoogrodnictwo/Rośliny_użytkowe/Rozmaryn|rozmaryn]], [[Ekoogrodnictwo/Rośliny_użytkowe/Szałwia lekarska|szałwia lekarska]] == Wykorzystanie == == Odmiany == fv128193timj81s6kydxawj9o5dersm Napary/Ostryż długi 0 61478 552141 550963 2026-08-17T11:46:43Z Persino 2851 552141 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Kurkuma}} {{Uprawa - roślina infobox | nazwa = Ostryż długi | obrazek = A closeup of Turmeric.JPG | łacina = Curcuma longa L. | nazwy = kurkuma | wikipedia = Ostryż długi | wikibooks 1 = Napary/Ostryż długi | _wikibooks 1 = herbatek z kurkumy | wikibooks 2 = Zioła i przyprawy/Kurkuma | _wikibooks 2 = kurkumy | wikibooks 3 = Ekoogrodnictwo/Rośliny użytkowe/Ostryż długi | _wikibooks 3 = uprawy ostryżu długiego | wikispecies = Curcuma longa | wikisłownik 1 = ostryż długi | wikisłownik 2 = kurkuma | commons = Category:Curcuma longa }} == Ostryż długi (kurkuma) == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Jest [[Napary/Działanie#Przeciwutleniacze|przeciwutleniaczem]]. * Ma działanie [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]], co nieco łagodzi dolegliwości przy [[Napary/Działanie#Stawy|artrozie]]. * Zawiera kurkuminę wspierając tworzenie serotoniny i dopaminy. * Działanie [[Napary/Działanie#Przeciwbólowe|przeciwbólowe]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] kurkumy może przynieść ulgę osobom cierpiącym na [[Napary/Działanie#Stawy|bóle stawów (artrozę)]] i mięśni. * Istnieją badania wskazujące na działanie porównywalne do działania [[Napary/Działanie#Depresja|antydepresantów]]. * Poprawia [[Napary/Działanie#Nastrój|nastrój]]. == Przeciwwskazania == * Może szkodzić wątrobie. == Surowiec zielarski == * Surowcem zielarskim jest kłącze kurkumy (''Curcumae longae rhizoma''). == Suplementacja == * Maksymalna dawka dzienna to 1,5 bis 3 g (ok. pół łyżeczki do jednej łyżeczki) proszku. * 0,5 g (niewielka szczypta) zawartej w kurkumie [[Napary/Pomoc#K|kurkuminy]] dziennie ma ogólnoustrojowy efekt przeciwzapalny. * Spożywaj w połączeniu z pożywieniem zawierającym oliwę z oliwek, olej z czarnuszki, olej lnianym, jogurt itp., ponieważ kurkuma jest przyswajana w połączeniu z tłuszczem. * Dodaj trochę pieprzu, by polepszyć przyswajanie [[Napary/Pomoc#K|kurkuminy]]. == Napary z ostryża długiego == === Herbatka z kurkumy === === Mieszanka === * Poleca się łączyć z [[Napary/Bakopa drobnolistna|brahmi (bakopą drobnolistną)]], [[Napary/Różeniec górski|różeńcem górskim]], [[Napary/Witania ospała|ashwagandhą (witanią ospałą)]], [[Napary/Klitoria ternateńska|klitorią ternateńską]] oraz z [[Napary/Herbata zielona|herbatą zieloną]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> kn47wic58irjf34gtixedthm4reyzxy Szablon:Uprawa - roślina infobox/siostrzane 10 61504 552086 550971 2026-08-17T07:05:48Z Persino 2851 552086 wikitext text/x-wiki <includeonly>{{Infobox nagłówek dodaj | 1 = {{Jeśli niepuste | 1 = {{{projekt|}}} | 2 = {{#switch:{{lc:{{{szablon|Wikipedia}}}}} | wikibooks = | #default = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} }} }} }} | 2 = {{{{{szablon|Wikipedia}}} | 1 = {{Jeśli niepuste | 1 = {{{projekt|}}} | 2 = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} }} }} | {{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikisłownik=opis|#default=2}} = {{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}} }} | pole = style="text-align:center; border-top: 1px #aaa solid; font-size:small;" }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox}}, określający wywołania szablonów projektu, podaną przez parametr: {{Parametr|szablon}}, i jego nazwę strony rośliny: {{Parametr|nazwa}} (ewentualnie ona może jeszcze być w postaci linku, plus z podwójnymi i potrójnymi cudzysłowami), po usunięciu w nim cudzysłowów i wyjęciu z jego nazwy linku, jeśli parametr: {{Parametr|projekt}}, nie jest pusty, to wtedy jest manualne wywołanie tych szablonów, w przeciwnym przypadku automatyczne, dla danego projektu użytego w szablonie. ; Zmienne użyte w szablonie{{dk}} * {{Code|projekt}} - nazwa manualna zawartości pierwszego parametru, dla szablonów projektów, * {{Code|szablon}} - nazwa szablonu projektu, jak np. w szablonach: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}, * {{Code|nazwa}} - nazwa opisu linku w drugim parametrze szablonu projektu. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> r5guuadza6nn0amevc3lyisbqi3wfkt 552087 552086 2026-08-17T07:07:53Z Persino 2851 552087 wikitext text/x-wiki <includeonly>{{Infobox nagłówek dodaj | 1 = {{Jeśli niepuste | 1 = {{{projekt|}}} | 2 = {{#switch:{{lc:{{{szablon|Wikipedia}}}}} | wikibooks = | #default = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} }} }} }} | 2 = {{{{{szablon|Wikipedia}}} | 1 = {{Jeśli niepuste | 1 = {{{projekt|}}} | 2 = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} }} }} | {{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikisłownik=opis|#default=2}} = {{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}} }} | pole = style="text-align:center; border-top: 1px #aaa solid; font-size:small;" }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox}}, określający wywołania szablonów projektu, podaną przez parametr: {{Parametr|szablon}}, i jego nazwę strony rośliny: {{Parametr|nazwa}} (ewentualnie ona może jeszcze być w postaci linku, plus z podwójnymi i potrójnymi cudzysłowami), po usunięciu w nim cudzysłowów i wyjęciu z jego nazwy linku, jeśli parametr: {{Parametr|projekt}}, nie jest pusty, to wtedy jest manualne wywołanie tych szablonów, w przeciwnym przypadku automatyczne, dla danego projektu użytego w szablonie. ; Zmienne użyte w szablonie{{dk}} * {{Code|projekt}} - nazwa manualna zawartości pierwszego parametru, dla szablonów projektów, * {{Code|szablon}} - nazwa szablonu projektu, jak np. w szablonach: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}, * {{Code|nazwa}} - nazwa opisu linku w drugim parametrze szablonu projektu. Szablon wywoływany przez: {{s|Uprawa - roślina infobox/siostrzane numerkowe}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> lcxw9borfam6xamraa28k8u9axpz3ng 552092 552087 2026-08-17T07:35:21Z Persino 2851 552092 wikitext text/x-wiki <includeonly>{{Infobox nagłówek dodaj | 1 = {{Jeśli niepuste | 1 = {{{projekt|}}} | 2 = {{#switch:{{lc:{{{szablon|Wikipedia}}}}} | wikibooks = | #default = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} }} }} }} | 2 = {{{{{szablon|Wikipedia}}} | 1 = {{Jeśli niepuste | 1 = {{{projekt|}}} | 2 = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} }} }} | {{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikisłownik=opis|#default=2}} = {{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}} }} | pole = style="text-align:center; border-top: 1px #aaa solid; font-size:small;" }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox/siostrzane numerkowe}}, określający wywołania szablonów projektu, podaną przez parametr: {{Parametr|szablon}}, i jego nazwę strony rośliny: {{Parametr|nazwa}} (ewentualnie ona może jeszcze być w postaci linku, plus z podwójnymi i potrójnymi cudzysłowami), po usunięciu w nim cudzysłowów i wyjęciu z jego nazwy linku, jeśli parametr: {{Parametr|projekt}}, nie jest pusty, to wtedy jest manualne wywołanie tych szablonów, w przeciwnym przypadku automatyczne, dla danego projektu użytego w szablonie. ; Zmienne użyte w szablonie{{dk}} * {{Code|projekt}} - nazwa manualna zawartości pierwszego parametru, dla szablonów projektów, * {{Code|szablon}} - nazwa szablonu projektu, jak np. w szablonach: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}, * {{Code|nazwa}} - nazwa opisu linku w drugim parametrze szablonu projektu. Szablon wywoływany przez: {{s|Uprawa - roślina infobox/siostrzane numerkowe}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 139n4b51c5tg1099rff66pw3ci876ee 552099 552092 2026-08-17T07:46:02Z Persino 2851 552099 wikitext text/x-wiki <includeonly>{{Infobox nagłówek dodaj | 1 = {{Jeśli niepuste | 1 = {{{projekt|}}} | 2 = {{#switch:{{lc:{{{szablon|Wikipedia}}}}} | wikibooks = | #default = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} }} }} }} | 2 = {{{{{szablon|Wikipedia}}} | 1 = {{Jeśli niepuste | 1 = {{{projekt|}}} | 2 = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{ucfirst:{{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}}}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu={{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikipedia=w|wikispecies=wikispecies|wikisłownik=wikt|commons=commons|#default=w}}}} }} }} | {{#switch:{{lc:{{{szablon|Wikipedia}}}}}|wikisłownik=opis|#default=2}} = {{Uprawa - roślina infobox/nazwa|nazwa={{Jeśli niepuste|{{{nazwa|}}}|{{NAZWASUBSTRONY}}}}}} }} | pole = style="text-align:center; border-top: 1px #aaa solid; font-size:small;" }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy (techniczny) do szablonu: {{s|Uprawa - roślina infobox/siostrzane numerkowe}}, określający wywołania szablonów projektu, podaną przez parametr: {{Parametr|szablon}}, i jego nazwę strony rośliny: {{Parametr|nazwa}} (ewentualnie ona może jeszcze być w postaci linku, plus z podwójnymi i potrójnymi cudzysłowami), po usunięciu w nim cudzysłowów i wyjęciu z jego nazwy linku, jeśli parametr: {{Parametr|projekt}}, nie jest pusty, to wtedy jest manualne wywołanie tych szablonów, w przeciwnym przypadku automatyczne, dla danego projektu użytego w szablonie. ; Zmienne użyte w szablonie{{dk}} * {{Code|projekt}} - nazwa manualna zawartości pierwszego parametru, dla szablonów projektów, którego zmienna określa zawartość pierwszej linkowej zawartości tych szablonów, * {{Code|szablon}} - nazwa szablonu projektu, jak np. w szablonach: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}, * {{Code|nazwa}} - nazwa opisu linku w drugim parametrze szablonu projektu. Szablon wywoływany przez: {{s|Uprawa - roślina infobox/siostrzane numerkowe}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> lwcwp9a5fjzpcnqk9onue70d5gv03l0 Szablon:LinkUstęp/skrót 10 62001 552073 524710 2026-08-17T06:14:46Z Persino 2851 552073 wikitext text/x-wiki <includeonly>{{#switch:{{{1|{{ROOTPAGENAME}}}}} | LinkUstęp = lu | LinkGłównaUstęp = lgu | LinkWikijuniorUstęp = lju | LinkModułUstęp = ldu | LinkSpecjalnaUstęp = lcu | LinkKategoriaUstęp = lku | LinkPomocUstęp = lpu | LinkSzablonUstęp = lsu | LinkProjektUstęp = lru | LinkUżytkownikUstęp = lżu | LinkPediaGłównaUstęp = lpgu | LinkPediaSzablonUstęp = lpsu | LinkPediaPomocUstęp = lppu | LinkPediaProjektUstęp = lpru | #default = }}</includeonly><noinclude>{{Dokumentacja|zawartość=Jest to szablon, pomocniczy do szablonu {{s|LinkUstęp/opis}}, do podawania skrótu szablonu, podając jego pełną nazwę, jak np. dla szablonu: {{s|LinkUstęp}}, jest: {{s|LinkUstęp/skrót|LinkUstęp}}, a to wywołanie wygląda tak po uruchomieniu: {{Code|{{LinkUstęp/skrót|LinkUstęp}}}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 67d5ims7zu5l539az1kyu3uzrvw2lu3 Szablon:LinkOgólne/skrót 10 62002 552072 550353 2026-08-17T06:12:51Z Persino 2851 552072 wikitext text/x-wiki <includeonly>{{#switch:{{{1|{{ROOTPAGENAME}}}}} | LinkOgólne = lo | LinkOgólne2 = lo2 | LinkGłówna = lg | LinkWikijunior = lj | LinkWikijunior2 = lj2 | LinkSzablon = ls | LinkSzablon2 = ls2 | LinkModuł = ld | LinkModuł2 = ld2 | LinkKategoria = lk | LinkKategoria2 = lk2 | LinkPomoc = lp | LinkPomoc2 = lp2 | LinkProjekt = lr | LinkProjekt2 = lr2 | LinkPlik = lf | LinkPlik2 = lf2 | LinkKomunikat = lm | LinkKomunikat2 = lm2 | LinkSpecjalna = lc | LinkSpecjalna2 = lc2 | LinkUżytkownik = lż | LinkUżytkownik2 = lż2 | LinkPediaGłówna = lpg | LinkPediaKategoria = lpk | LinkPediaKategoria2 = lpk2 | LinkPediaPomoc = lpp | LinkPediaPomoc2 = lpp2 | LinkPediaProjekt = lpr | LinkPediaProjekt2 = lpr2 | LinkPediaPortal = lpt | LinkPediaPortal2 = lpt2 | LinkPediaWikiprojekt = lpw | LinkPediaWikiprojekt2 = lpw2 | LinkCommonsGłówna = lcg | LinkCommonsKategoria = lck | LinkCommonsKategoria2 = lck2 | LinkCommonsProjekt = lcr | LinkPodróżeGłówna = ldg | LinkPodróżeProjekt = ldr | LinkSłownikGłówna = lsg | LinkSłownikProjekt = lsr | LinkCytatyGłówna = lxg | LinkCytatyProjekt = Lxr | LinkSpeciesGłówna = lgg | LinkSpeciesProjekt = lgr | LinkNewsGłówna = lzg | LinkNewsProjekt = lzr | LinkŹródłaGłówna = lźg | LinkŹródłaKategoria = lźk | LinkŹródłaKategoria2 = lźk2 | LinkŹródłaProjekt = lźr | LinkŹródłaProjekt2 = lźr2 | LinkWB = lb | LinkEnPediaGłówna = lhg | LinkEnGłówna = lbg | LinkEnKategoria = lbk | LinkEnProjekt = lbr | LinkEnWikijunior = lbj | LinkDaneGłówna = lng | LinkDaneProjekt = lnr | LinkDaneProperty = lnx | LinkWersytetGłówna = lrg | LinkWikiaGłówna = lwg | LinkMetaWikiGłówna = lmg | LinkMetaWikiSpecjalna = lmc | LinkMetaWikiPomoc = lmp | LinkMetaWikiPomoc2 = lmp2 | LinkMetaWikiProjekt = lmr | LinkMetaWikiProjekt2 = lmr2 | LinkMediaWikiGłówna = lkg | LinkMediaWikiPomoc = lkp | LinkMediaWikiPomoc2 = lkp2 | LinkMediaWikiExtension = lke | LinkMediaWikiExtension2 = lke2 | #default = }}</includeonly><noinclude>{{Dokumentacja|zawartość=Jest to szablon, pomocniczy do szablonu {{s|LinkOgólne/opis}}, do podawania skrótu szablonu, podając jego pełną nazwę, jak np. dla szablonu: {{s|LinkObiekt}}, jest: {{s|LinkOgólne/skrót|LinkOgólne}}, a to wywołanie wygląda tak: {{Code|{{LinkOgólne/skrót|LinkOgólne}}}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 35j4l32agy92en0kgwm2sw66i1qykot 552074 552072 2026-08-17T06:15:23Z Persino 2851 552074 wikitext text/x-wiki <includeonly>{{#switch:{{{1|{{ROOTPAGENAME}}}}} | LinkOgólne = lo | LinkOgólne2 = lo2 | LinkGłówna = lg | LinkWikijunior = lj | LinkWikijunior2 = lj2 | LinkSzablon = ls | LinkSzablon2 = ls2 | LinkModuł = ld | LinkModuł2 = ld2 | LinkKategoria = lk | LinkKategoria2 = lk2 | LinkPomoc = lp | LinkPomoc2 = lp2 | LinkProjekt = lr | LinkProjekt2 = lr2 | LinkPlik = lf | LinkPlik2 = lf2 | LinkKomunikat = lm | LinkKomunikat2 = lm2 | LinkSpecjalna = lc | LinkSpecjalna2 = lc2 | LinkUżytkownik = lż | LinkUżytkownik2 = lż2 | LinkPediaGłówna = lpg | LinkPediaKategoria = lpk | LinkPediaKategoria2 = lpk2 | LinkPediaPomoc = lpp | LinkPediaPomoc2 = lpp2 | LinkPediaProjekt = lpr | LinkPediaProjekt2 = lpr2 | LinkPediaPortal = lpt | LinkPediaPortal2 = lpt2 | LinkPediaWikiprojekt = lpw | LinkPediaWikiprojekt2 = lpw2 | LinkCommonsGłówna = lcg | LinkCommonsKategoria = lck | LinkCommonsKategoria2 = lck2 | LinkCommonsProjekt = lcr | LinkPodróżeGłówna = ldg | LinkPodróżeProjekt = ldr | LinkSłownikGłówna = lsg | LinkSłownikProjekt = lsr | LinkCytatyGłówna = lxg | LinkCytatyProjekt = Lxr | LinkSpeciesGłówna = lgg | LinkSpeciesProjekt = lgr | LinkNewsGłówna = lzg | LinkNewsProjekt = lzr | LinkŹródłaGłówna = lźg | LinkŹródłaKategoria = lźk | LinkŹródłaKategoria2 = lźk2 | LinkŹródłaProjekt = lźr | LinkŹródłaProjekt2 = lźr2 | LinkWB = lb | LinkEnPediaGłówna = lhg | LinkEnGłówna = lbg | LinkEnKategoria = lbk | LinkEnProjekt = lbr | LinkEnWikijunior = lbj | LinkDaneGłówna = lng | LinkDaneProjekt = lnr | LinkDaneProperty = lnx | LinkWersytetGłówna = lrg | LinkWikiaGłówna = lwg | LinkMetaWikiGłówna = lmg | LinkMetaWikiSpecjalna = lmc | LinkMetaWikiPomoc = lmp | LinkMetaWikiPomoc2 = lmp2 | LinkMetaWikiProjekt = lmr | LinkMetaWikiProjekt2 = lmr2 | LinkMediaWikiGłówna = lkg | LinkMediaWikiPomoc = lkp | LinkMediaWikiPomoc2 = lkp2 | LinkMediaWikiExtension = lke | LinkMediaWikiExtension2 = lke2 | #default = }}</includeonly><noinclude>{{Dokumentacja|zawartość=Jest to szablon, pomocniczy do szablonu {{s|LinkOgólne/opis}}, do podawania skrótu szablonu, podając jego pełną nazwę, jak np. dla szablonu: {{s|LinkObiekt}}, jest: {{s|LinkOgólne/skrót|LinkOgólne}}, a to wywołanie wygląda tak po uruchomieniu: {{Code|{{LinkOgólne/skrót|LinkOgólne}}}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> pmqlcumj6fh9c72eesaguvstaugrds8 Ekoogrodnictwo/Rośliny użytkowe/Kolendra siewna 0 63452 552142 545846 2026-08-17T11:49:52Z Persino 2851 552142 wikitext text/x-wiki {{Podrozdział|[[Ekoogrodnictwo]]<br>[[Ekoogrodnictwo/Rośliny_użytkowe|Rośliny użytkowe]]<br>Kolendra siewna}} {{Uprawa - roślina infobox | nazwa = Kolendra siewna | obrazek = Starr 080731-9547 Coriandrum sativum retusche.jpg | gleba = | ciepło = | wrażliwość = | woda = | łacina = Coriandrum sativum L. | wikipedia = Kolendra siewna | wikibooks 1 = Napary/Kolendra siewna | _wikibooks 1 = kolendry siewnej | wikibooks 2 = Zioła i przyprawy/Kolendra | _wikibooks 2 = kolendry | wikispecies = Coriandrum sativum | wikisłownik = kolendra siewna | commons = Coriandrum sativum }} === Uprawa === ===== Miejsce uprawy ===== * Podczas sadzenia należy zadbać o wystarczającą ilość miejsca, ponieważ krzew kolendry może osiągnąć wysokość do 90 cm. ===== Siew/sadzenie ===== * Od kwietnia do czerwca można włożyć w ziemię cztery do pięciu nasion na głębokość około pół centymetra w odstepach ok. 25 cm.. * Nasiona należy przykryć cienką warstwą (około 1 cm) gleby. Zbyt płytkie posadzenie może spowodować ich wyschnięcie. * Po wykiełkowaniu sadzonki należy rozdzielić, zachowując odstępy 15 cm. * Małe rośliny należy regularnie podlewać i utrzymywać w wilgoci. * Kwitnie od lipca do sierpnia. ===== Uprawa pod szkłem ===== * Kolendrę można z powodzeniem uprawiać w szklarni, w tunelu foliowym, a także w doniczkach na parapecie lub balkonie. === Wskazówki biologiczne === * Kolendra jest [[Pszczelarstwo/Rośliny/Coriandrum sativum|rośliną miododajną]]. * Dobrzy sąsiedzi: :* [[Ekoogrodnictwo/Rośliny użytkowe/Sałata|Sałata]], [[Ekoogrodnictwo/Rośliny użytkowe/Kapusta głowiasta|kapusta głowiasta]], [[Ekoogrodnictwo/Rośliny użytkowe/Chili|chili]] i [[Ekoogrodnictwo/Rośliny użytkowe/Imbir|imbir]]. * Źli sąsiedzi: === Zbiór === * Po upływie ok. czterech do sześciu tygodni młoda roślina jest gotowa do pierwszego zbioru. Zrywaj tylko dolne liście i ścinaj łodygi, aby roślina mogła wypuścić nowe pędy. * Jeśli nie chcesz zbierać nasion, możesz przedłużyć okres zbioru liści i łodyg. Wystarczy w odpowiednim czasie usunąć pąki kwiatowe. * Świeże liście możesz zebrać i zamrozić. * Od sierpnia do września nasiona kolendry powoli dojrzewają. Ponieważ w pełni dojrzałe ziarna szybko opadają, zbierz nasiona przed osiągnięciem przez nie pełnej dojrzałości. === Odmiany === === Zastosowanie === * Kolendra siewna to zioło i przyprawa kuchenna. * → [[Zioła i przyprawy/Kolendra|Zioła i przyprawy - Kolendra]] lz3s93wwjkok5wukglncim6hvxeg3v7 Szablon:Wikibooks 10 63453 552131 539427 2026-08-17T11:20:04Z Persino 2851 552131 wikitext text/x-wiki {{Projekt siostrzany | projekt = Wikibooks | tekst = Książka [[{{msg:PEŁNANAZWAKSIĄŻKI|{{{1}}}}}|{{msg:SUBNAZWAKSIĄŻKI|{{{1}}}}}]], na polskim {{NS|l=tak|w=tak|p=ie}}, zawiera artykuł na temat '''[[{{msg:PEŁNANAZWASTRONY|{{{1}}}}}|{{{2|{{ucfirst:{{msg:NAZWASUBSTRONY|{{{1}}}}}}}}}}]]'''. }}<noinclude> {{Dokumentacja}} </noinclude> 39esmidt742m9akiqlkfsqleat9i3sc Napary/Kolendra siewna 0 63455 552133 540037 2026-08-17T11:33:10Z Persino 2851 552133 wikitext text/x-wiki <noinclude>{{NawigacjaG | 1 = Napary | 2 = | 3 = }}</noinclude> {{Uprawa - roślina infobox | nazwa = Kolendra siewna | obrazek = Starr 080731-9547 Coriandrum sativum retusche.jpg | łacina = Coriandrum sativum | nazwy = | wikipedia = Kolendra siewna | wikibooks 1 = Zioła i przyprawy/Kolendra | __wikibooks 1 = kolendry siewnej | wikibooks 2 = Ekoogrodnictwo/Rośliny użytkowe/Kolendra siewna | __wikibooks 2 = uprawy kolendry | wikisłownik = kolendra siewna | commons = Category:Coriandrum sativum }} == Kolendra siewna == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Przeciwdziała [[Napary/Działanie#Wzdęcia|wzdęciom]] * Wspiera [[Napary/Działanie#Wątroba|wątrobę]]. == Przeciwwskazania == == Surowiec zielarski == * Listki oraz nasiona kolendry siewnej. == Napary z kolendry siewnej == * Napar przygotowany z nasion kolendry ma cytrusowy, lekko cierpki smak. Dobrze smakuje ciepły i niesłodzony. === Herbata z kolendry siewnej === * 1–2 łyżeczki nasion zmielonych lub zmiażdżonych w moździerzu zalej ok. 250 ml wrzącej wody. * Zaparzaj ok. 10 min. * Popijaj małymi łykami. {{Przypisy}} <noinclude>{{Nawigacja | 1 = Napary | 2 = | 3 = }}</noinclude> 5o7pgjz9ybmz9nzs8m2v0kkkiztnuki Napary/Krwiściąg lekarski 0 63484 552143 540586 2026-08-17T11:51:28Z Persino 2851 552143 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Krwiściąg lekarski}} {{Uprawa - roślina infobox | nazwa = Krwiściąg lekarski | obrazek = Gerlachov 17Slovakia.jpg | łacina = Sanguisorba officinalis L. | nazwy = | wikipedia = Krwiściąg lekarski | wikibooks = Zioła i przyprawy/Krwiściąg | wikispecies = Sanguisorba officinalis | wikisłownik = krwiściąg lekarski | commons = Category:Sanguisorba officinalis }} == Krwiściąg lekarski == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Zawiera [[Napary/Pomoc#G|garbniki]], [[Napary/Pomoc#S|saponiny]], [[Napary/Pomoc#F|flawonoidy]]. * Stosowany przy [[Napary/Działanie#Nieżyt żołądka|nieżycie żołądka]] i [[Napary/Działanie#Biegunka|biegunce]]. == Przeciwwskazania == == Surowiec zielarski == * Suszone kłącze (''Radix Sanguisorbae''), także ziele (''Herba Sanguisorbae''). * Stosuj w stanie świeżym lub w postaci proszku ze zmielonych kłączy. == Napary z krwiściągu lekarskiego == === Herbatka z ziela krwiściągu lekarskiego === * 1 łyżkę ziela zalej szklanką wrzątku, przykryj i odstaw na 20 minut. * Pij 2 razy dziennie. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> o0uu6vdazaaj0aekpbyx5azk9f4fal4 Wikibooks:Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek 4 63515 551975 551891 2026-08-16T14:18:08Z Persino 2851 /* {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) */ 551975 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki)}} już nie, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> t5w936q6rz88pkgb991fokg7j1w1dg2 551976 551975 2026-08-16T14:21:44Z Persino 2851 /* {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} */ 551976 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa spisu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numer spisu, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków, które po łaczeniu ze sobą, z łącznikiem kropka, dają numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków, które po łaczeniu ze sobą, z łącznikiem kropka, dają numer artykułu. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki)}} już nie, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6eyrnn5uv1b66332bjwvo9qad7xxjj9 551977 551976 2026-08-16T14:23:20Z Persino 2851 /* {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} */ 551977 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki)}} już nie, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fg5hcpog86q37lio6fl0rvacwse4sbi 551978 551977 2026-08-16T14:24:57Z Persino 2851 /* {{Śródtytuł|funkcje transportu}}Funkcje tablicy transportu funkcji */ 551978 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążekStronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki)}} już nie, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rgn0j6nxbz3a3yo2t1y4irgy4y75cvo 551979 551978 2026-08-16T14:25:42Z Persino 2851 /* {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne */ 551979 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążekStronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki)}} już nie, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> hin5854w5lsc3yyrkrgtt2n9zbhzxrw 551980 551979 2026-08-16T14:26:46Z Persino 2851 /* {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążekStronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} */ 551980 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki)}} już nie, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3cvhg7ef5vlfe948yswekt573d7xe6k 551981 551980 2026-08-16T14:41:51Z Persino 2851 /* {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} */ 551981 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> o8kv7yt6da35oaitxc9yj6g58ao8818 551982 551981 2026-08-16T14:46:08Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 551982 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gf2hm3fy0nkzrqzispf0ebi2hhwwsii 551983 551982 2026-08-16T14:55:03Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 551983 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> b3pfrf2btnpit3xn3cutrbkap0846sy 551984 551983 2026-08-16T14:56:37Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 551984 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ipqkitew1bb2qdut48i3tlyrpot8r0a 551985 551984 2026-08-16T14:57:36Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} */ 551985 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i zamieniony numer artykułu jest większy od jedynki, lub to istnieje i {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} jest większy od jedynki, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}.Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tmamoxa4r8gfhizx3qq9spy3p3qu51e 551986 551985 2026-08-16T15:01:07Z Persino 2851 /* Dalsza część opisu funkcji {{Code|__FUNKCJA}} */ 551986 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Tego {{LinkPatrz|tab_rozdzial}} tworzony podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> izdbugi6icukpfj71vcnci5qsjguzjk 551987 551986 2026-08-16T15:08:58Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 551987 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> t3658p2lbixtz45ljglz1gc39izin52 551988 551987 2026-08-16T15:29:37Z Persino 2851 /* {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} */ 551988 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli spis nie będzie pierwszy {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, a także {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, A jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kmhw10tdb1a14dmmb2ibek6lvnhm7jk 551989 551988 2026-08-16T15:46:41Z Persino 2851 /* {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} */ 551989 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tą tablicę. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli nie jest ustawione, że rozdział dany w spisie, że nie jest pierwszy, czyli: {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, istniją, a także: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}}, nie istnieje, a za to: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieje, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, a jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> chypsu7k52np8r57kratmqaht810idj 552034 551989 2026-08-16T18:43:59Z Persino 2851 /* {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} */ 552034 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. Kolejność ważności rozdziałów: * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach, a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałam są: dodatnie, czy ujemne, a nawet średnikowego badź zerowego Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tę tablicę numerków rozpakujący: {{LinkPatrz|numer_artykulu}}, z niego numerki, który każdy element numerowany tej tablicy, to są te elementy oddzielone kropkami w tym numerze artykułu. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli nie jest ustawione, że rozdział dany w spisie, że nie jest pierwszy, czyli: {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, istniją, a także: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}}, nie istnieje, a za to: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieje, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, a jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> anlfnoxwvlf5eqqx87sj7litd4zln8g 552035 552034 2026-08-16T18:52:42Z Persino 2851 /* {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} */ 552035 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają: * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. ; Kolejność ważności rozdziałów{{dk}} * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. ; Typy rozdziałów * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach (jeżeli podręcznik jest wielospisowy, tzn. ma wiele spisów treści), a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałami są: dodatnie, czy ujemne, a nawet średnikowe badź zerowe), są wykorzystywane numery innych poprzedzających, czy nawet następujących czasami, tych elementów spisowych. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tę tablicę numerków rozpakujący: {{LinkPatrz|numer_artykulu}}, z niego numerki, który każdy element numerowany tej tablicy, to są te elementy oddzielone kropkami w tym numerze artykułu. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli nie jest ustawione, że rozdział dany w spisie, że nie jest pierwszy, czyli: {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, istniją, a także: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}}, nie istnieje, a za to: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieje, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, a jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c343qg5bta7sbtxnonlildzedonaomu 552036 552035 2026-08-16T18:53:29Z Persino 2851 /* {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} */ 552036 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. ; Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają{{dk}} * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. ; Kolejność ważności rozdziałów{{dk}} * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. ; Typy rozdziałów * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach (jeżeli podręcznik jest wielospisowy, tzn. ma wiele spisów treści), a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałami są: dodatnie, czy ujemne, a nawet średnikowe badź zerowe), są wykorzystywane numery innych poprzedzających, czy nawet następujących czasami, tych elementów spisowych. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tę tablicę numerków rozpakujący: {{LinkPatrz|numer_artykulu}}, z niego numerki, który każdy element numerowany tej tablicy, to są te elementy oddzielone kropkami w tym numerze artykułu. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli nie jest ustawione, że rozdział dany w spisie, że nie jest pierwszy, czyli: {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, istniją, a także: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}}, nie istnieje, a za to: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieje, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, a jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> d744jxv0p408xcra2qo3jk82ih6yf98 552037 552036 2026-08-16T18:54:02Z Persino 2851 /* {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} */ 552037 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. ; Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają{{dk}} * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. ; Kolejność ważności rozdziałów{{dk}} * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. ; Typy rozdziałów{{dk}} * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach (jeżeli podręcznik jest wielospisowy, tzn. ma wiele spisów treści), a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałami są: dodatnie, czy ujemne, a nawet średnikowe badź zerowe), są wykorzystywane numery innych poprzedzających, czy nawet następujących czasami, tych elementów spisowych. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tę tablicę numerków rozpakujący: {{LinkPatrz|numer_artykulu}}, z niego numerki, który każdy element numerowany tej tablicy, to są te elementy oddzielone kropkami w tym numerze artykułu. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli nie jest ustawione, że rozdział dany w spisie, że nie jest pierwszy, czyli: {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, istniją, a także: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}}, nie istnieje, a za to: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieje, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, a jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4olyjxshl43zxvel94keuhxv83uag9r 552038 552037 2026-08-16T18:56:21Z Persino 2851 /* {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} */ 552038 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Funkcje pobierania numerku artykułu lub nagłówka o którymś numerze jego nazwy przy pomocy szablonu: {{s|PobierzNumerArtykułu}}, lub odwrotnie jej nazwy, dzięki: {{s|PobierzNazwęArtykułu}}. Można też zbierać informacje przy pomocy wywołania ramki: {{m|StronicowyParser|PobierzDaneKsiążki}}. == {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne == Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{LinkŚródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}, są zdefiniowane kolejno w modułach. Są to funkcje lokalne dla funkcji liczenia, numerków lub nazw, na podstawie tego przeciwnego, oraz do wyznaczania bazy, numerków i nazw, z innymi parametrami rozdziałów i artykułów. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} (potrzebne) === Są to funkcje potrzebne, czyli konieczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} ==== Funkcja do pobierania nazwy lub numerka rozdziału lub artykułu jego przeciwnego, przy pomocy funkcji, realizowana przy pomocy funkcji: {{LinkPatrz|__FUNKCJA}}, ale też za pomocą tej funkcji można zbierać informacje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} {{Patrz|frame}} - tablica ramki tablicy transportu funkcji, * {{Code|tabela_listy_danych_analizy_ksiazki}} {{Patrz|tabela_listy_danych_analizy_ksiazki}} - tablica używana zamiast uzyskania tablicy ramki: {{Code|{{ld2|StronicowyParser/informacje}}}}, a właściwie jego głównej podtablicy, * {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja do uzyskania tego, co jest potrzebne w nagłówku, ale też ona służy do zbierania informacji, * {{Code|typ}} {{Patrz|typ}} - prawdziwe, gdy jest uzyskiwana nazwa artykułu na podstawie jego numeru, przeciwnie, wtedy odwrotnie, * {{Code|zbieraj_dane_wszystkie}} {{Patrz|zbieraj_dane_wszystkie}} - prawdziwe, gdy funkcja służy do zbierania informacji. Parametry tablica ramki {{LinkPatrz|frame}} tablicy transportu funkcji: * {{Code|nagłówek}} {{Patrz|nagłówek}} - prawdziwe, gdy artykuły mogą się powtarzać, * {{Code|nie wszystkie}} {{Patrz|nie wszystkie}} - prawdziwe, wtedy nie są brane wszystkie rozdziały, * {{Code|dane}} {{Patrz|dane}} - typ zbieranych lub uzyskiwanych danych, * {{Code|spis}} {{Patrz|spis}} - nazwa artykułu spisu, a więc który spis ma rozważać, * {{Code|poziomowo}} {{Patrz|poziomowo}} - czy ma brać numerki wielopoziomowe, czyli oddzielonych kropkami, * {{Code|nazwa}} {{Patrz|nazwa-p.PobierzNumerLubNazweArtykulu}} - brana jest nazwa linku artykułu zamiast nazwy, * {{Code|który}} {{Patrz|który}} - którą nazwę nagłówka lub artykułu, albo jego numer, w zależności od ustawień, ma wyszukać, aby np. zwrócić to przeciwne. Powyższe parametry to są parametry ramki rodzica, czyli szablonu. Przykłady funkcji: {{LinkPatrz|__FUNKCJA}}, są kolejno w punktach: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}} dla funkcji: {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, i {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}} dla funkcji: {{LinkŚródtytuł|p["PobierzDaneKsiążki"]}}. Funkcja numeruje poszczególne nagłówki lub artykuły i na podstawie funkcji: {{LinkPatrz|__FUNKCJA}}, coś uzyskuje. ; Są różne typy zbierania danych, one charakteryzują się parametrem {{LinkPatrz|dane}}, ten parametr uzyskuje różne liczby, a one są {{Code|1}}, {{Code|2}} lub {{Code|3}}, a one oznaczają{{dk}} * {{Code|1}} - rozważa tylko artykuły, * {{Code|2}} - rozważa tylko rozdziały, * {{Code|3}} - rozważa nie tylko artykuły, również rozdziały. Brak tej danej lub inna wartość oznacza, że brana jest jego domyślna wartość: {{Code|dana}} {{Code|{{=}}}} {{Code|1}}. Funcja bierze pod uwagę rozdziały dodatnie równaniowo, centrowane szablonowo lub znacznikowo, a nawet nagłówki, które też są nimi, ale również średnikowe, czy zerowe, a nawet ujemne. ; Kolejność ważności rozdziałów{{dk}} * Rozdziały centrowane szablonowo ({{s|Ce}}, {{s|Centruj}} i {{s|Center}}) bądź znaczniowo ({{Tag|center}}), * Rozdziały dodatnie równaniowo (jak: {{Code|<nowiki>== Nagłówek ==</nowiki>}}) i nagłówki ({{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}), * Rozdziały średnikowe (zaczynające się od znaku {{Code|<nowiki>;</nowiki>}}), * Rozdziały zerowe (niezaczynające się od żadnego specjalnego znaku), * Rozdziały ujemne - to są pozycje list zaczynających się od {{Code|<nowiki>[%*:#]</nowiki>}}, ** Ważność rozdziałów ujemnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}} (bo czasami dwukropek nie jest numerowany, jeżeli jest pochyły, lub zawiera za dużo znaków). Funkcja przy pomocy zmiennej {{LinkPatrz|nagłówek}}, zbiera, nawet powtarzające się, artykuły, nawet gdyby były one z nagłówkami. Można również rozważyć, jakie rozdziały ma zbierać, w spisach w rozdziale '''Spis treści''' i '''SPIS RZECZY''', są zbierane wszystkie rozdziały, w innych miejscach rozdziały moga nie być wszystkie zbierane, a jeżeli tak jest, to parametr {{LinkPatrz|nie wszystkie}} ma wartość niepustą. ; Typy rozdziałów spisowych i sposób numerowania{{dk}} * Rozdziały, według funkcji, w rozdziałe głównym danego spisu i o nazwie: '''Spis treści''' i '''SPIS RZECZY''', są liczone względem tych poszczególnych kolejno rozdziałach, ale od początku, a po wyściu z tego drugiego odtwarzane jego numer spisu treści, i na podstawie tak uzyskanego numeru tego liczy on dalej. * Dla innych rozdziałów w wielu spisach (jeżeli podręcznik jest wielospisowy, tzn. ma wiele spisów treści), a nie tylko jedynym, do numeru rozdziału i artykułów (tymi rozdziałami są: dodatnie, czy ujemne, a nawet średnikowe badź zerowe), są wykorzystywane numery innych poprzedzających, czy nawet następujących czasami, tych elementów spisowych. Można zbierać dane, jeśli {{LinkPatrz|poziomowo}} jest prawdziwa, wtedy numerki są wielopoziomowe, tzn. ewentualnie rozdzielone numerkami, przeciwna wartość determiniuje, że nagłówki lub artykuły, w zależności od ustawień zbierania danych w spisach książki, są numerowane tylko liczbami naturalnymi od {{Code|1}}. Wartość {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}}, to zamiast nazwy artykułu brana jest jej nazwa linku, podczas pobierana nazwy. Parametr {{LinkPatrz|który}} jest liczbą lub domyślną wartością {{Code|1}}, to oznacza, że brana jest wartość nazwy artykułu na podstawie numerka jej ten numer okreslony tą zmienną, lub jeśli pobierany jest numer to ten numer nazwy. A co oznacza '''ten numer''', właśnie to, że brana jest ta zmienna, która jest taka sama o tym numerze. Czasami, jeśli w rozdziale jest wiele artykułów, to ten artykuł jest traktowany jako rozdzial, i w nim artykuły są liczone osobno w odpowiedni sposób. Czasami znaki przed artykułem podowują, że taki rozdział jest liczony jako rozdział, a z artykułami jest jak poprzednio, a gdy w artykuł jest na poczatku pozycji spisu, to to wtedy jest to zwykły artykuł. === {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} (pomocne) === Są to funkcje potrzebne, czyli dostateczne, do budowy funkcji do liczenia nazw i numerków. ==== {{Śródtytuł|p.ZamienNumerArtykuluNaTabele}}{{Code|p.ZamienNumerArtykuluNaTabele}} ==== Funkcja zamienia numerki z kropkami na tabelę, z nich. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ZamienNumerArtykuluNaTabele=function(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} {{Patrz|numer_artykulu}} - numer artykułu lub nagłówka, którego numerki są oddzielone kropkami. Funkcja zwraca tę tablicę numerków rozpakujący: {{LinkPatrz|numer_artykulu}}, z niego numerki, który każdy element numerowany tej tablicy, to są te elementy oddzielone kropkami w tym numerze artykułu. ==== {{Śródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}} ==== Funkcja w odpowiedni w sposób usuwa pierwsze jedynki w numerach, które mogą na początku się powtarzać. Tylko te jedynki są usuwane,aby nie wyzerować tablicy numerków. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}, * {{Code|tab_lista_artykulow_w_ksiazce}} {{Patrz|tab_lista_artykulow_w_ksiazce}} - tablica spisów książki, jego rozdziałów i artykułów, * {{Code|tab_numer_artykulu}} {{Patrz|tab_numer_artykulu}} - tabela numerków nagłówków lub artykułów. Funkcja generuje na podstawie {{LinkPatrz|tab_lista_artykulow_w_ksiazce}} tabelę listy spisów, które należą też do tych spisów. Na podstawie tej tabeli, jeżeli jakis inny spis, niż główny, nie należy do tej tabeli, to funkcja zwraca tabelę numerków {{LinkPatrz|tab_numer_artykulu}}. Funkcja dla długości tablicy większej niż jeden, jeżeli ten numerek jest {{Code|1}}, to jest on usuwamy. A jeżeli dalszy numerek jest też {{Code|1}}, wtedy jeżeli jest jakiś główny jego rozdział, to wtedy jest usuwana początkowa jedynka. Funkcja zwraca przetworzoną niepustą tablicę {{LinkPatrz|tab_numer_artykulu}}. ==== {{Śródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ==== Funkcja łączy numerację spisu z numeracją artykułu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}, czyli numerki oddzielone kropkami artykułu, * {{Code|numer_spisu}} {{Patrz|numer_spisu}} - numerki oddzielone kropkami spisu. Funkcja zamienia na tablicę numerków przy pomocy funkcji {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}} numerki artykułu {{LinkPatrz|numer_artykulu}}, a jeśli tablica numerków artykułu jest mniejszy niż jeden, wtedy zwraca tą pustą tablicę numerków. A pózniej ta zamiana na tablicę w ten sam sposób odbywa się dla {{LinkPatrz|numer_spisu}}. Funkcja dla początkowego numerku w tablicy {{LinkPatrz|numer_artykulu}}, zamienia na końcowy numerek spisu {{LinkPatrz|numer_spisu}}. Dalsze numerki ze spisu są dodawane kolejno do numerek artykułów na samym początku tablicy. Funkcja zwraca numerek całkowity artykułu w postaci połączonej z dwóch numerków spisu i artykułu. ==== {{Śródtytuł|p.WarunekSpisuWoluminu}}{{Code|p.WarunekSpisuWoluminu}} ==== Funkcja do sprawdzania w funkcjach tablicy transportu: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}} i {{LinkŚródtytuł|p["PobierzNazwęArtykułu"]}}, czy numer całkowity artykuły, czy rozdziału, powstałym po połączeniu ze sobą numeru rozdziału i numeru artykułu, którą trzebaa bezpośrednio zrzucić, bez przetwarzania, przez te funkcje. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo)...end; </syntaxhighlight> Parametry funkcji: * {{Code|nazwa_spisu}} - jak w: {{LinkPatrz|nazwa_spisu}}, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}}, * {{Code|tab_numer}} - jak w: {{LinkPatrz|tab_numer}}, * {{Code|tab_poziomowo}} - jak w: {{LinkPatrz|tab_poziomowo}}. == {{Śródtytuł|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}{{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek}}}} == To są funkcje zwracane do tablicy transportu, i mogą być one widoczne ze strony innych modułów. Te funkcje wykorzystują funkcje z rozdziału: {{Code|{{LinkŚródtytuł|funkcje lokalne}}}}. === {{Śródtytuł|p["PobierzNumerArtykułu"]}}{{Code|p["PobierzNumerArtykułu"]}} === Funkcja pobierania numeru artykułu, wedle ustawień, na podstawie jej nazwy. Funkcja jest implemetowana w szablonie: {{s|PobierzNumerArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNumerArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić nazwę nagłówka, czy artykułu, na numer, będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji {{ZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki)...end; </syntaxhighlight> Parametry funkcji {{ZobaczTeż|Parametry-PobierzNumerArtykułu}}: * {{Code|poziomowo}} - jak w: {{LinkPatrz|poziomowo}}, czyli czy dopasowanie ma być wielopoziomowe, oddzielone kropkami, czy liczba naturalną, * {{Code|i}} {{Patrz|i}} - gdy {{LinkPatrz|poziomowo}}, jest fałszywe, to który numer jest danego rozdziału lub artykułu, jest to liczba naturalna, * {{Code|ktory}} - jak w: {{LinkPatrz|który}}, czyli które takie samo dopasowanie ma uwzględnić, * {{Code|pierwszy_parametr_szablonu}} {{Patrz|pierwszy_parametr_szablonu}} - jest to bezparametrowa funkcja zwracająca tabelę z trzech parametrów, w którym elementami są kolejno: pierwszy jest to pierwszy parametr szablonu, który uruchamia funkcję, która z kolei iteracyjnie wywołuje tą funkcję, ono przyjmuje taką formę w zależności od parametru {{LinkPatrz|typ}}, drugi, czy zamiast artykułu ma zwracać nazwę linku, a trzeci to jest parametr {{LinkPatrz|dane}}, * {{Code|rozdzial}} {{Patrz|rozdzial}} - rozdział w spisie, * {{Code|artykul}} {{Patrz|artykul}} - nazwa artykułu, w spisie, w książce lub innej strony, * {{Code|tab_numer}} {{Patrz|tab_numer}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer rozdziału, * {{Code|tab_poziomowo}} {{Patrz|tab_poziomowo}} - tablica numerków charakteryzujący po połączeniu łacznikiem kropką jest to numer artykułu w rozdziale, * {{Code|czy_nienilowy_rozdzial}} {{Patrz|czy_nienilowy_rozdzial}} - czy rozważany rozdział jest nienilowy, * {{Code|czy_artykuly_podrecznikowe}} {{Patrz|czy_artykuly_podrecznikowe}} - czy artykuł jest stroną podręcznika, * {{Code|przekierowanie}} {{Patrz|przekierowanie}} - nazwa artykułu przekierowania, * {{Code|nazwa}} {{Patrz|nazwa}} - nazwa linku artykułu, * {{Code|artykul_spisu}} {{Patrz|artykul_spisu}} - nazwa artykułu spisu, podany w parametrach szablonu, która uruchamia funkcję, która z kolei wywołuje tą funkcję, * {{Code|nazwa_spisu}} {{Patrz|nazwa_spisu}} - nazwa artykułu spisu wśród wszystkich spisach, * {{Code|numer_spisu}} - jak w: {{LinkPatrz|numer_spisu}} - jest to numer spisu, jest to liczba naturalna, * {{Code|tab_lista_artykulow_w_ksiazce}} - jak w: {{LinkPatrz|tab_lista_artykulow_w_ksiazce}}, * {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} - czy artykuł znajduje się w głównym spisie treści. Gdy {{Code|artykul}} {{LinkPatrz|artykul}} przyjmuje wartość pustą, wtedy jest sprawdzany rozdział, jeśli {{Code|dane}} {{LinkPatrz|dane}} jest równy liczbowo {{Code|2}} lub {{Code|3}}, w takim razie jest sprawdzany rozdział {{LinkPatrz|rozdzial}} ze zmienną podaną jako pierwszy parametr podanego szablonu, a jeśli to {{LinkPatrz|artykul}} przyjmuje inną wartość, wtedy dla {{LinkPatrz|dane}} równe {{Code|1}} lub {{Code|3}}, wtedy jest z tym pierwszym parametrem sprawdzany {{LinkPatrz|artykul}}, a jeżeli w tym przypadku dopasowanie się nie powiedzie, wtedy tak samo jest sprawdzane jego przekierowanie {{LinkPatrz|przekierowanie}}. Jeśli poprzednie dopasowanie się powiedzie, wtedy jest sprawdzane, czy to takie samo dopsasowanie jest {{LinkPatrz|który}}, a ten licznik tych samych dopasowań jest bez przerwy liczony, gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} przyjmuje wartość fałszywą, wtedy zwracane są dwa parametry, tzn. kolejno: {{Code|i}} {{LinkPatrz|i}} i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, przeciwnie, wtedy, dalej będziemy rozważać, numerki rozdziału i artykułu można przedstawić w postaci tabel numerków, które mozna płączyć w każdnym z nich kropkami, a je kolejno kropkami. Po takim połączeniu otrzymamy numerem artykułu {{Patrz|numer_artykułu}} w danej książce, numery artykułu mogą się powtarzać rozdziałów lub artykułów. Gdy {{ZobaczTeż|Parametry bez przetwarzania}} jest jeden spis, którym jest strona główna książki, albo nie istnieje {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje i jeśli fukcja: {{LinkŚródtytuł|p.WarunekSpisuWoluminu}}, zwróciła prawdę, lub: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, i {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{Patrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (poprzednie {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}), są prawdę, i numer spisu {{LinkPatrz|numer_spisu}} istnieje, i jest większy od zera, wtedy jest zwracane {{ZobaczTeż|numer_artykułu}} numer artykułu {{LinkPatrz|numer_artykułu}}, jako pierwsza zwracana wartość, a druga {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. W innym przypadku, gdy spis jest pierwszy, i jest główny spis treści według {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, to podobnie robimy jak w punkcie {{LinkZobaczTeż|numer_artykułu}}, przeciwnie: numer artykułu {{LinkPatrz|numer_artykułu}} jest zamieniany na tabelę dzięki {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, dalej robimy tak jak: {{ZobaczTeż|parametry zwracane łącznikowe}} uzyskana tabela jest łączona w łańcuch znakowych z łącznikiem kropką, używając funkcji: {{LzLua|table.concat}}, a drugim parametrem zwracanym jest {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. A gdy jeszcze nie zwrócono wyniku, wtedy liczony jest numer spisu treści na podstawie: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, jeśli on nie istnieje, wtedy jest zwracany numer artykułu {{LinkPatrz|numer_artykułu}} jak w: {{LinkZobaczTeż|numer_artykułu}}, przeciwnie mamy, w którym jest dany artykuł, który po połączeniu z numerem artykułu daje całkowity numer artykułu, a ta integracja następuje dzięki {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co póżniej jest zwracane jak w: {{LinkZobaczTeż|parametry zwracane łącznikowe}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNumerArtykułu}}, która zwraca dwie dane, tzn. numer rozdziału lub artykułu. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzNazwęArtykułu"]}}{{Code|p["PobierzNazwęArtykułu"]}} === Funkcja pobierania nazwy artykułu na podstawie jej numeru, wedle ustawień. Funkcja jest implemetowana w szablonie: {{s|PobierzNazwęArtykułu}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzNazwęArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}{{Code|__FUNKCJA}} ==== Jest to funkcja, dzięki, której można zamienić numer nagłówka, czy artykułu, na nazwę, ten numer będący liczbą naturalną od {{Code|1}}, lub numerkami oddzielonych kropkami, w zależności od ustawień. Definicja skrótowa funkcji ma ten sam kształt, co w: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a opis parametrów jest według: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}. Gdy {{Code|poziomowo}} {{LinkPatrz|poziomowo}} jest welkością fałszywą, i gdy {{Code|i}} {{LinkPatrz|i}} jest równe {{Code|numer}} {{Patrz|numer}}, który jest pierwszym parametrem, wtedy dla {{Code|ktory}} {{LinkPatrz|który}}, dla jakiegoś tego samego powtórzenia, gdy {{Code|artykul}} {{LinkPatrz|artykul}} jest nie równy ciągowi pustemu, wtedy jest wyświetlany artykuł {{LinkPatrz|artykul}}, jeśli {{Code|nazwa}} (parametr ramki {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} jest niepuste, przeciwnie jest wyświetlana nazwa linku artykułu, a dla {{LinkPatrz|artykul}} pustego, wtedy jest wyświetlany rozdział {{LinkPatrz|rozdzial}}. ===== {{Śródtytuł|NumerArtykulu}}{{Code|NumerArtykulu}} ===== Zmienna {{Code|tab_numer}} {{LinkPatrz|tab_numer}} jest łączona kropkami przy pomocy {{LzLua|table.concat}}, a dalej {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}}, łączymy takim samym łącznikiem, co poprzednio, a oba łańcuchy też łączymy w jeden większy łańcuch znakowy, którym jest numer artykułu. ===== {{Śródtytuł|WynikArtykulowyZNumeru}}{{Code|WynikArtykulowyZNumeru}} ===== Funkcja do liczenia artykułu lub nazwy artykułu albo rozdziału z jego numeru wuelopoziomowo, tzn. przy prawdziwości parametru {{LinkPatrz|poziomowo}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> local function WynikArtykulowyZNumeru(numer_artykulu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|numer_artykulu}} - jak w: {{LinkPatrz|numer_artykulu}}. Gdy {{LinkPatrz|artykul}} jest równy ciągowi pustemu, wtedy dla parametru {{LinkPatrz|dane}}, takiego, że {{Code|2}} lub {{Code|3}}, sprawdzamy, czy numer artykułu {{LinkPatrz|numer_artykulu}} jest równy {{Code|numer}} {{LinkPatrz|numer}}, a jeśli nie, to dla parametrów {{LinkPatrz|dane}}, takiego, że {{Code|1}} lub {{Code|3}}, ale dla artykułu {{LinkPatrz|artykul}} równym ciągowi niepustemu, wtedy dla takiego samego sprawdzenia, dla takiego samego numeru o numerze {{LinkPatrz|który}}, gdy artykuł jest nierówny ciągowi niepustemu, wtedy gdy {{LinkPatrz|nazwa-p.PobierzNumerLubNazweArtykulu}} nie jest niepusta, wtedy zwracana jest nazwa artykułu {{LinkPatrz|artykul}}, przeciwnie nazwa linku artykułu, tzn. {{Code|nazwa}} {{LinkPatrz|nazwa}}. A jeśli {{LinkPatrz|artykul}} jest jednak równy ciągowi pustemu, to wtedy jest zwracany rozdział {{LinkPatrz|rozdzial}}. ===== Dalsza część opisu funkcji {{Code|__FUNKCJA}} ===== Liczony jest numer artykułu {{LinkPatrz|numer_artykulu}} przy pomocy funkcji: {{LinkŚródtytuł|NumerArtykulu}}. Gdy jest spełniony warunek z: {{LinkZobaczTeż|Parametry bez przetwarzania}}, wtedy {{ZobaczTeż|WynikArtykulowyZNumeru}} jest liczony wynik {{Code|wynik}} {{Patrz|wynik}} z funkcji: {{LinkŚródtytuł|WynikArtykulowyZNumeru}}. Gdy {{LinkPatrz|wynik}} istnieje, wtedy jest zwracany on w pierwszym parametrze, a w drugim zmienna {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}. Gdy {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieje, i jest równy {{Code|1}}, wtedy dla istniejącego {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} jest podobnie liczone i zwracane, jak w punkcie {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. A gdy jednak {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy numer artykulu {{LinkPatrz|numer_artykulu}} zamieniamy na tabelę na podstawie funkcji: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, z tabeli. Tą tabelę {{ZobaczTeż|łączenie tabeli numeru}} zamieniamy na łańcuch znakowy z łącznikiem przy pomocy funkcji: {{LzLua|table.concat}}. Dalej robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. W innym wypadku, jeśli nie zwrócono wynik, wtedy liczymy numer spisu, w którym jest dany artykuł, czy rozdział, z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}. Jeżeli ten spis nie istnieje, to podobnie robimy jak w punkcie: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}, przeciwnie: integrujemy numer spisu z numerem artykułu, używając funkcji: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}. Wykonujemy operację jak w: {{LinkZobaczTeż|łączenie tabeli numeru}}. A następnie podobnie robimy jak w: {{LinkZobaczTeż|WynikArtykulowyZNumeru}}. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzNazwęArtykułu}}, która zwraca dwie dane, tzn. nazwę rozdziału lub artykułu na podstawie jego numeru. Drugą wartością zwracaną jest, czy to znajduje się, co to pierwsze opisuje w rozdziale głównym. Główna definicja funkcji: <syntaxhighlight lang="lua"> local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,true); return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki; </syntaxhighlight> === {{Śródtytuł|p["PobierzDaneKsiążki"]}}{{Code|p["PobierzDaneKsiążki"]}} === Funkcja zbierania informacji o wszystkich spisach, tzn. wiadomości o każdym rozdziale i wszystko o linkach, tzn. o ich artykułach, nawet prowadzące na inne strony na {{NAZWASERWISU|link=tak}}, lub poza nim, a nawet o ich przetworzonych nazwach. Funkcja jest implementowana w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, tzn. {{m|StronicowyParser|PobierzDaneKsiążki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PobierzDaneKsiążki"]=function(frame,tabela_listy_danych_analizy_ksiazki)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - jak w: {{LinkPatrz|frame}}, * {{Code|tabela_listy_danych_analizy_ksiazki}} - jak w: {{LinkPatrz|tabela_listy_danych_analizy_ksiazki}}. ==== {{Śródtytuł|__FUNKCJA-PobierzDaneKsiążki}}{{Code|__FUNKCJA}} ==== Jest to funkcja do pobierania danych informacji o spisach. Definicja skrótowa funkcji jest bardzo podobna do: {{LinkZobaczTeż|__FUNKCJA-PobierzNumerArtykułu}}, a on ściślej wygląda trochę inaczej, a więc: <syntaxhighlight lang="lua"> local function __FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,czy_nienilowy_rozdzial,czy_artykuly_podrecznikowe,przekierowanie,nazwa,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki,czy_dodane,czy_inna_ksiazka,czy_url)...end; </syntaxhighlight> Parametry funkcji: * Te same parametry, co w: {{LinkZobaczTeż|Parametry-PobierzNumerArtykułu}}, * {{Code|czy_dodane}} {{Patrz|czy_dodane}} - czy element artykułu bez nagłówka jest dodany do tabeli uzyskanego zebranego spisu, by zachować ciągłość numeracji, * {{Code|czy_inna_ksiazka}} {{Patrz|czy_inna_ksiazka}} - czy przekierowanie wskazuje na artykuł w innej książce, jeżeli strona główna książki nie przekierowuje do danej bieżącej książki, * {{Code|czy_url}} {{Patrz|czy_url}} - czy artykuł jest '''URL''', czyli czy jest adresem strony internetowej. Jeżeli parametr artykułu podanego spisu {{Code|artykul_spisu}} {{LinkPatrz|artykul_spisu}} i nazwy spisu {{Code|nazwa_spisu}} {{LinkPatrz|nazwa_spisu}} istnieją, wtedy funkcja sygnalizuje zatrzymanie się algorytmu: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, po przeanalizowaniu się jego od początku pierwszego spisu. Jest tworzona pusta nowa zmienna tablicowa {{Code|tab_dane_ksiazki}} {{Patrz|tab_dane_ksiazki}}, a następnie jest tworzona jego pusta podtablica o kluczu {{Code|rozdzial}} {{LinkPatrz|rozdzial}}, co z tego jest tworzone {{Code|tab_rozdzial}} {{Patrz|tab_rozdzial}}. Dalej jest tworzona zmienna {{Code|numer_rozdzialu}} {{Patrz|numer_rozdzialu}} ze zmiennej tablicowej {{Code|tab_numer}} {{LinkPatrz|tab_numer}} z łącznikiem kropka przy pomocy funkcji: {{LzLua|table.concat}}. {{Tab}}Gdy {{LinkPatrz|nazwa_spisu}} i numer spisu {{Code|numer_spisu}} {{LinkPatrz|numer_spisu}} istnieją, a: {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, już nie, lub gdy {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}} (jest to poprzednie: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}) i aktualne {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieją, i jednocześnie {{LinkPatrz|numer_rozdzialu}} jest łańcuchem znaków niepustym, wtedy liczymy: Jeśli {{LinkPatrz|numer_spisu}} jest równy {{Code|1}}, czyli jest pierwszym spisem treści, i w podinstukcji {{Code|glowny_spis_tresci_lub_rozdzial_ksiazki}} {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}} nie istnieje, wtedy {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co dalej to jest zamieniane na numerację rozdziału {{LinkPatrz|numer_rozdzialu}} z tym samym łącznikiem tą samą funkcją, co na samym początku tego rozważania przy tej zmiennej. Przeciwnie niż w poprzednim akapicie jest liczony numer spisu treści z funkcji: {{LinkŚródtytuł|p["PobierzNumerArtykułu"]}}, co jest łączone z {{LinkPatrz|numer_rozdzialu}} w większy numer rozdziału dzięki: {{LinkŚródtytuł|p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}, a jeśli spis znajduje się w spisie jako artykuł, nie jako w głównym rozdziale, wtedy są usuwane początkowe jedynki według: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co następie jest tworzone ostateczna wersja numeru rozdziału z tak otrzymanej tabeli w łańcuch znaków {{LinkPatrz|numer_rozdzialu}}. {{Tab}}Jeśli nie jest ustawione, że rozdział dany w spisie, że nie jest pierwszy, czyli: {{Code|pierwszy_spis_tresci}} {{Patrz|pierwszy_spis_tresci}}, a nazwa spisu {{LinkPatrz|nazwa_spisu}} i numer spisu {{LinkPatrz|numer_spisu}}, istniją, a także: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki_poprz}}, nie istnieje, a za to: {{LinkPatrz|glowny_spis_tresci_lub_rozdzial_ksiazki}}, istnieje, i {{LinkPatrz|numer_rozdzialu}} nie jest rozdziałem o ciągu pustym, a jeśli rozdział jest spisem treści, czy spisem rzeczy, wtedy jest ustawiana prawdziwość zmiennej {{LinkPatrz|pierwszy_spis_tresci}}, następnie dla {{LinkPatrz|numer_rozdzialu}} jest zamieniane na tabelę, dzięki: {{LinkŚródtytuł|p.ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}, co to później jest zamienane na łańcuch znaków w: {{LinkPatrz|numer_rozdzialu}}. ---- Z tego {{LinkPatrz|tab_rozdzial}} tworzymy podtablicę o kluczu {{LinkPatrz|numer_rozdzialu}}, jeśli nie istnieje, co z tego mamy {{Code|tab_numer_rozdzialu}} {{Patrz|tab_numer_rozdzialu}}, co dalej na podstawie tego dalej tworzymy podtablicę o kluczu {{Code|artykul}} {{LinkPatrz|artykul}}, jeżeli nie istnieje, co dzięki temu mamy: {{Code|tab_artykul}} {{Patrz|tab_artykul}}. Tworzymy numer artykułu {{Code|numer_artykulu}} {{LinkPatrz|numer_artykulu}} z {{Code|tab_poziomowo}} {{LinkPatrz|tab_poziomowo}} z łącznikiem kropką, przy pomocy: {{LzLua|table.concat}}. Następnie tworzymy podtablicę z {{LinkPatrz|tab_artykul}} z klucza {{LinkPatrz|numer_artykulu}}, jeśli nie istnieje, tworząc: {{Code|tab_numer_artykulu}} {{LinkPatrz|tab_numer_artykulu}}. ---- Z tablicy {{LinkPatrz|tab_numer_artykulu}}, modyfikujemy tą podtablicę dodając do jego końca elementy na podstawie: <syntaxhighlight lang="lua"> table.insert(tab_numer_artykulu,{["przekierowanie"]=czy_tabelka and przekierowanie[1] or ((not czy_tabelka) and przekierowanie or nil),["kod języka"]=czy_tabelka and przekierowanie[3] or nil,["kod projektu"]=czy_tabelka and przekierowanie[4] or nil,["pełna nazwa książki"]=(czy_tabelka and przekierowanie[2]) and nazwy_modul["NazwaModułu"](przekierowanie[2][1],przekierowanie[2][2],przekierowanie[2][3],"") or nil,["link"]=czy_tabelka and przekierowanie[5] or nil,["nazwa"]=nazwa,["spis treści"]=czy_nienilowy_rozdzial,["czy w podręczniku"]=(((artykul~="")or(numer_artykulu~="")) and ((czy_artykuly_podrecznikowe) and true or nil) or nil),["dodane"]=czy_dodane,["numer"]=s,["inna książka"]=czy_inna_ksiazka,["url"]=czy_url,}); </syntaxhighlight> Na samym końcu, po dojściu do tego momentu funkcja zawsze zwraca wartość {{Code|false}}, czyli procedura: {{LinkŚródtytuł|p.PobierzNumerLubNazweArtykulu}}, na tej funkcji, czyli:{{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, nie zatrzymuje się. ==== Dalsza część funkcji ==== Wywoływana jest tutaj funkcja: {{LinkŚródtytuł|__FUNKCJA-PobierzDaneKsiążki}}, która nie zwraca żadnych danych, tylko modyfikuje zmienną w wyższej funkcji. Funkcja zwraca tabelę '''JSON''' przy pomocy funkcji: {{LzLua|mw.text.jsonEncode}}, z ustawieniem: {{Code|mw.text.JSON_PRESERVE_KEYS}}, która numeruje indeksu w takiej formie jak jest użyte w języku {{lpg|Lua}} w {{Lpr|Lua|Scribunto}}, jeśli nie jest ustawiona zmienna: {{Code|kodowanie_nie_json}}, przeciwnie: jest zwracana ta tabela nie zamieniona na zmienną '''JSON'''. Główna definicja funkcji: <syntaxhighlight lang="lua"> ---- Tą zmienną, tzn.: tab_dane_ksiazki, inicjuje funkcja lokalna: __FUNKCJA, by potem ją zwrócić jako tabelę Lua w Scribunto, albo jaką tabelę JSON, którą można użyć do przetwarzania w języku JavaScript; local tab_dane_ksiazki=nil; ... local stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul=require("Module:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne"); stronicowyparser_numerlubnazwaartykulowksiazek_potrzebne_modul.PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,false,true); ---- Jeśli zapisujemy jako tabelę: JSON, to zapisujemy ją z zachowaniem dla parametrów numerowanych ich numerów, czyli takie tablice z nimi zapisjemy jako tabelę z kliczami, którymi są łańcuchu znakowe, a więc tworzymu ją jako tablice asocjacyjne; return (not kodowanie_nie_json) and mw.text.jsonEncode(tab_dane_ksiazki,mw.text.JSON_PRESERVE_KEYS) or tab_dane_ksiazki; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> m91ergor7np9a2zspknh8uwvzoac2o7 Szablon:Status/identyfikator 10 63827 552042 550372 2026-08-16T19:50:13Z Persino 2851 552042 wikitext text/x-wiki <includeonly><!-- -->{{#if:{{{kategorie interwiki|}}}|<!-- -->{{#if:{{{pl:w|}}} |{{#invoke:Skrót|Kategoria|{{Status/nazwa|klucz=pl:w |nazwa={{{nazwa|}}}}} na polskiej Wikipedii}}}}<!-- -->{{#if:{{{en:b|}}} |{{#invoke:Skrót|Kategoria|{{Status/nazwa|klucz=en:b |nazwa={{{nazwa|}}}}} na angielskim Wikibooksie}}}}<!-- -->{{#if:{{{pl:s|}}} |{{#invoke:Skrót|Kategoria|{{Status/nazwa|klucz=pl:s |nazwa={{{nazwa|}}}}} na polskich Wikiźródłach}}}}<!-- -->{{#if:{{{pl:q|}}} |{{#invoke:Skrót|Kategoria|{{Status/nazwa|klucz=pl:q |nazwa={{{nazwa|}}}}} na polskich Wikicytatach}}}}<!-- -->{{#if:{{{pl:wikt|}}}|{{#invoke:Skrót|Kategoria|{{Status/nazwa|klucz=pl:wikt |nazwa={{{nazwa|}}}}} na polskim Wikisłowniku}}}}<!-- -->{{#if:{{{en:v|}}} |{{#invoke:Skrót|Kategoria|{{Status/nazwa|klucz=en:v |nazwa={{{nazwa|}}}}} na angielskim Wikiwersytecie}}}}<!-- -->{{#if:{{{pl:n|}}} |{{#invoke:Skrót|Kategoria|{{Status/nazwa|klucz=pl:n |nazwa={{{nazwa|}}}}} na polskich Wikinewsach}}}}<!-- -->{{#if:{{{d|}}} |{{#invoke:Skrót|Kategoria|{{Status/nazwa|klucz=d |nazwa={{{nazwa|}}}}} na Wikidanych}}}}<!-- -->}}<!-- -->{{#if:{{{pl:w|}}}|{{#tag:indicator|<!-- -->{{Plik | plik = Wikipedia-logo.svg | rozmiar = {{{rozmiar plik|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = Hasła na polskiej Wikipedii | link = w:{{{pl:w|}}} }}|name=indicator_status_polska_Wikipedia|class=metadata topicon|id=status-icon}}}}<!-- -->{{#if:{{{en:b|}}}|{{#tag:indicator|<!-- -->{{Plik | plik = Wikibooks-logo.svg | rozmiar = {{{rozmiar plik|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = Podręczniki na angielskim Wikibooks'ie | link = en:{{{en:b|}}} }}|name=indicator_status_angielski_Wikibooks|class=metadata topicon|id=status-icon}}}}<!-- -->{{#if:{{{pl:s|}}}|{{#tag:indicator|<!-- -->{{Plik | plik = Wikisource-logo.svg | rozmiar = {{{rozmiar plik|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = Książki na polskich Wikiźródłach | link = s:{{{pl:s|}}} }}|name=indicator_status_polskie_Wikiźródła|class=metadata topicon|id=status-icon}}}}<!-- -->{{#if:{{{pl:q|}}}|{{#tag:indicator|<!-- -->{{Plik | plik = Wikiquote-logo.svg | rozmiar = {{{rozmiar plik|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = Hasła na polskich Wikicytatach | link = q:{{{pl:q|}}} }}|name=indicator_status_polskie_Wikicytaty|class=metadata topicon|id=status-icon}}}}<!-- -->{{#if:{{{pl:wikt|}}}|{{#tag:indicator|<!-- -->{{Plik | plik = WiktionaryPl nodesc.svg | rozmiar = {{{rozmiar plik|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = Hasła na polskim Wikisłowniku | link = wikt:{{{pl:wikt|}}} }}|name=indicator_status_polski_Wikisłownik|class=metadata topicon|id=status-icon}}}}<!-- -->{{#if:{{{en:v|}}}|{{#tag:indicator|<!-- -->{{Plik | plik = Wikiversity-logo.svg | rozmiar = {{{rozmiar plik|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = Skrypty na angielskim Wikiwersytecie | link = en:v:{{{en:v|}}} }}|name=indicator_status_angielski_Wikiwersytet|class=metadata topicon|id=status-icon}}}}<!-- -->{{#if:{{{pl:n|}}}|{{#tag:indicator|<!-- -->{{Plik | plik = Wikinews-logo.svg | rozmiar = {{{rozmiar plik|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = Wiadomości na polskich Wikinewsach | link = n:{{{pl:n|}}} }}|name=indicator_status_polskich_Wikinewsach|class=metadata topicon|id=status-icon}}}}<!-- -->{{#if:{{{d|}}}|{{#tag:indicator|<!-- -->{{Plik | plik = Wikidata-logo.svg | rozmiar = {{{rozmiar plik|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = Identyfikatory na Wikidanych | link = d:{{{d|}}} }}|name=indicator_status_Wikidane|class=metadata topicon|id=status-icon}}}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wyświetlający w identyfikatorze linki rysunki interwiki. * Szablon ma takie same parametry, jak: {{s|Status/interwiki}}, plus zmienne poszczególnych interwiki. Szablon zgłasza interwiki dla takich projektów, jak jest to wskazane na stronie {{s|Status}}, względem szablonu nadrzędnego {{s|Status/interwiki}}, również zgłasza do nich odpowiednie kategorie projektów. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> ptxkdmxn5o4lwhwfwvrwt90vrtzypq4 Szablon:Status/interwiki 10 63828 552040 550373 2026-08-16T19:46:10Z Persino 2851 552040 wikitext text/x-wiki <includeonly><!-- -->{{Status/identyfikator | rozmiar plik = {{{rozmiar plik|}}} | styl plik = {{{styl plik|}}} | kategorie interwiki = {{{kategorie interwiki|}}} | nazwa = {{{nazwa|}}} | pl:w = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=w}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=w}} }} | en:b = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=en|kod projektu=b}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=en|kod projektu=b}} }} | pl:s = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=s}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=s}} }} | pl:q = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=q}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=q}} }} | pl:wikt = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=wikt}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=wikt}} }} | en:v = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=en|kod projektu=v}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=en|kod projektu=v}} }} | pl:n = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=n}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=n}} }} | d = {{Jeśli niepuste |{{#invoke:Wikidane|id|{{#invoke:Pudełko|Pełna nazwa jednostki}}|idwiki=plwikibooks}} |{{#invoke:Wikidane|id|{{#invoke:Pudełko|Pełna nazwa jednostki}}|idwiki=plwiki}} }}<!-- -->}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wyświetlający w identyfikatorze linki rysunki interwiki. ; Parametry techniczne * {{Code|rozmiar pliku}} - rozmiar pliku, jak wszablonie: {{s|Plik}}, * {{Code|styl plik}} - style plików w idenyfikatorze, * {{Code|kategorie interwiki}} - jeśli niepuste, to wyświetlaj kategorie do zgłoszonych interwiki w identyfikatorze, * {{Code|nazwa}} - nazwa przestrzeni nazw. Szablon zgłasza interwiki dla takich projektów jak jest to wskazane na stronie {{s|Status}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> gyzxsjdridmk2cr97pxrvbv5hehybi8 552041 552040 2026-08-16T19:49:03Z Persino 2851 552041 wikitext text/x-wiki <includeonly><!-- -->{{Status/identyfikator | rozmiar plik = {{{rozmiar plik|}}} | styl plik = {{{styl plik|}}} | kategorie interwiki = {{{kategorie interwiki|}}} | nazwa = {{{nazwa|}}} | pl:w = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=w}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=w}} }} | en:b = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=en|kod projektu=b}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=en|kod projektu=b}} }} | pl:s = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=s}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=s}} }} | pl:q = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=q}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=q}} }} | pl:wikt = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=wikt}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=wikt}} }} | en:v = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=en|kod projektu=v}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=en|kod projektu=v}} }} | pl:n = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=n}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=n}} }} | d = {{Jeśli niepuste |{{#invoke:Wikidane|id|{{#invoke:Pudełko|Pełna nazwa jednostki}}|idwiki=plwikibooks}} |{{#invoke:Wikidane|id|{{#invoke:Pudełko|Pełna nazwa jednostki}}|idwiki=plwiki}} }}<!-- -->}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wyświetlający w identyfikatorze linki rysunki interwiki. ; Parametry techniczne * {{Code|rozmiar pliku}} - rozmiar pliku, jak wszablonie: {{s|Plik}}, * {{Code|styl plik}} - style plików w idenyfikatorze, * {{Code|kategorie interwiki}} - jeśli niepuste, to wyświetlaj kategorie do zgłoszonych interwiki w identyfikatorze, * {{Code|nazwa}} - nazwa przestrzeni nazw. Szablon zgłasza interwiki dla takich projektów, jak jest to wskazane na stronie {{s|Status}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> promrjr1au79gt1hppnb6oa5sfua1lk 552048 552041 2026-08-16T20:08:16Z Persino 2851 552048 wikitext text/x-wiki <includeonly><!-- -->{{Status/identyfikator | rozmiar plik = {{{rozmiar plik|}}} | styl plik = {{{styl plik|}}} | kategorie interwiki = {{{kategorie interwiki|}}} | nazwa = {{{nazwa|}}} | pl:w = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=w}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=w}} }} | en:b = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=en|kod projektu=b}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=en|kod projektu=b}} }} | pl:s = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=s}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=s}} }} | pl:q = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=q}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=q}} }} | pl:wikt = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=wikt}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=wikt}} }} | en:v = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=en|kod projektu=v}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=en|kod projektu=v}} }} | pl:n = {{Jeśli niepuste |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=b|kod języka=pl|kod projektu=n}} |{{#invoke:wiki|WikidaneOdpowiednikStrony|wyspecjalizowana=tak|nazwa strony={{#invoke:Pudełko|Pełna nazwa jednostki}}|kod języka bazy=pl|kod projektu bazy=w|kod języka=pl|kod projektu=n}} }} | d = {{Jeśli niepuste |{{#invoke:Wikidane|id|{{#invoke:Pudełko|Pełna nazwa jednostki}}|idwiki=plwikibooks}} |{{#invoke:Wikidane|id|{{#invoke:Pudełko|Pełna nazwa jednostki}}|idwiki=plwiki}} }}<!-- -->}}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wyświetlający w identyfikatorze linki rysunki interwiki i zwracający odpowiednie kategorie do nich. ; Parametry techniczne * {{Code|rozmiar pliku}} - rozmiar pliku, jak wszablonie: {{s|Plik}}, * {{Code|styl plik}} - style plików w idenyfikatorze, * {{Code|kategorie interwiki}} - jeśli niepuste, to wyświetlaj kategorie do zgłoszonych interwiki w identyfikatorze, * {{Code|nazwa}} - nazwa przestrzeni nazw. Szablon zgłasza, interwiki i kategorie, dla takich projektów, jak jest to wskazane na stronie {{s|Status}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 5xsnuf0asa865jgjqzietbrlnhmatib Szablon:Status/nazwa 10 63829 552043 550368 2026-08-16T19:57:14Z Persino 2851 552043 wikitext text/x-wiki <includeonly><!-- -->{{#switch:{{{klucz|}}} | pl:w = {{#switch:{{{nazwa|}}}|#default|(main) = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:b = {{#switch:{{{nazwa|}}}|#default|(main) = Podręczniki | Wikijunior = Podręczniki dla dzieci, | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:s = {{#switch:{{{nazwa|}}}|#default|(main) = Książki | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:q = {{#switch:{{{nazwa|}}}|#default|(main) = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:wikt = {{#switch:{{{nazwa|}}}|#default|(main) = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:v = {{#switch:{{{nazwa|}}}|#default|(main) = Skrypty | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:n = {{#switch:{{{nazwa|}}}|#default|(main) = Wiadomości | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | d = {{#switch:{{{nazwa|}}}|#default|(main) = Identyfikatory | Wikijunior = Identyfikatory, podręczników dla dzieci, |{{Ns:Template}} = Identyfikatory, szablonów, | {{Ns:Module}} = Identyfikatory, modułów,}} | #default = }}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon w zależności od projektu obsługiwanego przez: {{s|Status/interwiki}}, zwraca nazwy początów dla poszczególnych projektów, potrzebne do sformułowania nazw odpowiednich kategorii. ; Projekty siostrzane, i językowe możliwie polskie, a jak nie ma takich, to angielskie{{dk}} * {{Code|klucz}} - odpowiednie interwiki projektu, obsługwane interwiki dla projektów są na stronie {{s|Status}}, * {{Code|nazwa}} - wyświetlana nazwa przestrzeni nazw niekanoniczna, obsługiwane przestrzenie to: {{Np|(main)|link=tak}}, {{Np|Template|link=tak}} i {{Np|Module|link=tak}}. Szablon zgłasza interwiki dla takich projektów, jak jest to wskazane na stronie {{s|Status}}, względem szablonu nadrzędnego {{s|Status/interwiki}}, również zgłasza do nich odpowiednie kategorie projektów. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> k6ju31u07j3fleuiisuvj6mp3ibkcmq 552044 552043 2026-08-16T20:01:08Z Persino 2851 552044 wikitext text/x-wiki <includeonly><!-- -->{{#switch:{{{klucz|}}} | pl:w = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:b = {{#switch:{{{nazwa|}}}|#default| = Podręczniki | Wikijunior = Podręczniki dla dzieci, | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:s = {{#switch:{{{nazwa|}}}|#default| = Książki | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:q = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:wikt = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:v = {{#switch:{{{nazwa|}}}|#default| = Skrypty | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:n = {{#switch:{{{nazwa|}}}|#default| = Wiadomości | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | d = {{#switch:{{{nazwa|}}}|#default| = Identyfikatory | Wikijunior = Identyfikatory, podręczników dla dzieci, |{{Ns:Template}} = Identyfikatory, szablonów, | {{Ns:Module}} = Identyfikatory, modułów,}} | #default = }}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon w zależności od projektu obsługiwanego przez: {{s|Status/interwiki}}, zwraca nazwy początów dla poszczególnych projektów, potrzebne do sformułowania nazw odpowiednich kategorii. ; Projekty siostrzane, i językowe możliwie polskie, a jak nie ma takich, to angielskie{{dk}} * {{Code|klucz}} - odpowiednie interwiki projektu, obsługiwane interwiki dla projektów są na stronie {{s|Status}}, * {{Code|nazwa}} - niewyświetlana nazwa przestrzeni nazw niekanoniczna, obsługiwane przestrzenie to: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}} (w przypadku {{NAZWASERWISU|link=tak|klucz projektu=en:b|po=a}}), {{Np|Template|link=tak}} i {{Np|Module|link=tak}}. Szablon zgłasza interwiki dla takich projektów, jak jest to wskazane na stronie {{s|Status}}, względem szablonu nadrzędnego {{s|Status/interwiki}}, również zgłasza do nich odpowiednie kategorie projektów. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> pad73jm8ldu7n1xqtue7d4qakwzbc2l 552045 552044 2026-08-16T20:04:22Z Persino 2851 552045 wikitext text/x-wiki <includeonly><!-- -->{{#switch:{{{klucz|}}} | pl:w = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:b = {{#switch:{{{nazwa|}}}|#default| = Podręczniki | Wikijunior = Podręczniki dla dzieci, | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:s = {{#switch:{{{nazwa|}}}|#default| = Książki | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:q = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:wikt = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:v = {{#switch:{{{nazwa|}}}|#default| = Skrypty | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:n = {{#switch:{{{nazwa|}}}|#default| = Wiadomości | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | d = {{#switch:{{{nazwa|}}}|#default| = Identyfikatory | Wikijunior = Identyfikatory, podręczników dla dzieci, |{{Ns:Template}} = Identyfikatory, szablonów, | {{Ns:Module}} = Identyfikatory, modułów,}} | #default = }}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon w zależności od projektu obsługiwanego przez: {{s|Status/interwiki}}, zwraca nazwy początów dla poszczególnych projektów, potrzebne do sformułowania nazw odpowiednich kategorii. ; Projekty siostrzane, i językowe możliwie polskie, a jak nie ma takich, to angielskie{{dk}} * {{Code|klucz}} - odpowiednie interwiki projektu, obsługiwane interwiki dla projektów są na stronie {{s|Status}}, * {{Code|nazwa}} - niewyświetlana nazwa przestrzeni nazw niekanoniczna, obsługiwane przestrzenie to: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}} (w przypadku {{NAZWASERWISU|link=tak|klucz projektu=en:b|po=a}}), {{Np|Template|link=tak}} i {{Np|Module|link=tak}}. Szablon zgłasza interwiki dla takich projektów, jak jest to wskazane na stronie {{s|Status}}, względem szablonu nadrzędnego {{s|Status/interwiki}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 5mla3kj4emyhixf3rec90zsfm3p1jbq 552046 552045 2026-08-16T20:05:34Z Persino 2851 552046 wikitext text/x-wiki <includeonly><!-- -->{{#switch:{{{klucz|}}} | pl:w = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:b = {{#switch:{{{nazwa|}}}|#default| = Podręczniki | Wikijunior = Podręczniki dla dzieci, | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:s = {{#switch:{{{nazwa|}}}|#default| = Książki | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:q = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:wikt = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:v = {{#switch:{{{nazwa|}}}|#default| = Skrypty | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:n = {{#switch:{{{nazwa|}}}|#default| = Wiadomości | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | d = {{#switch:{{{nazwa|}}}|#default| = Identyfikatory | Wikijunior = Identyfikatory, podręczników dla dzieci, |{{Ns:Template}} = Identyfikatory, szablonów, | {{Ns:Module}} = Identyfikatory, modułów,}} | #default = }}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon w zależności od projektu obsługiwanego przez: {{s|Status/interwiki}}, zwraca nazwy początów dla poszczególnych projektów, potrzebne do sformułowania nazw odpowiednich kategorii. ; Projekty siostrzane, i językowe możliwie polskie, a jak nie ma takich, to angielskie{{dk}} * {{Code|klucz}} - odpowiednie interwiki projektu, obsługiwane interwiki dla projektów są na stronie {{s|Status}}, * {{Code|nazwa}} - niewyświetlana nazwa przestrzeni nazw niekanoniczna, obsługiwane przestrzenie to: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}} (w przypadku {{NAZWASERWISU|link=tak|klucz projektu=en:b|po=a}}), {{Np|Template|link=tak}} i {{Np|Module|link=tak}}. Szablon do zgłaszania kategorii dla odpowiednich interwiki dla takich projektów, jak jest to wskazane na stronie {{s|Status}}, względem szablonu nadrzędnego kolejno: {{s|Status/identyfikator}} i {{s|Status/interwiki}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> j9xtttzvqzdir9xhjwjpc8an4ld8wza 552047 552046 2026-08-16T20:06:21Z Persino 2851 552047 wikitext text/x-wiki <includeonly><!-- -->{{#switch:{{{klucz|}}} | pl:w = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:b = {{#switch:{{{nazwa|}}}|#default| = Podręczniki | Wikijunior = Podręczniki dla dzieci, | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:s = {{#switch:{{{nazwa|}}}|#default| = Książki | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:q = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:wikt = {{#switch:{{{nazwa|}}}|#default| = Hasła | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | en:v = {{#switch:{{{nazwa|}}}|#default| = Skrypty | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | pl:n = {{#switch:{{{nazwa|}}}|#default| = Wiadomości | {{Ns:Template}} = Szablony | {{Ns:Module}} = Moduły}} | d = {{#switch:{{{nazwa|}}}|#default| = Identyfikatory | Wikijunior = Identyfikatory, podręczników dla dzieci, |{{Ns:Template}} = Identyfikatory, szablonów, | {{Ns:Module}} = Identyfikatory, modułów,}} | #default = }}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon w zależności od projektu obsługiwanego przez: {{s|Status/interwiki}}, zwraca nazwy początków nazw kategorii dla poszczególnych projektów, potrzebne do sformułowania nazw odpowiednich kategorii. ; Projekty siostrzane, i językowe możliwie polskie, a jak nie ma takich, to angielskie{{dk}} * {{Code|klucz}} - odpowiednie interwiki projektu, obsługiwane interwiki dla projektów są na stronie {{s|Status}}, * {{Code|nazwa}} - niewyświetlana nazwa przestrzeni nazw niekanoniczna, obsługiwane przestrzenie to: {{Np|(main)|link=tak}}, {{Np|Wikijunior|link=tak}} (w przypadku {{NAZWASERWISU|link=tak|klucz projektu=en:b|po=a}}), {{Np|Template|link=tak}} i {{Np|Module|link=tak}}. Szablon do zgłaszania kategorii dla odpowiednich interwiki dla takich projektów, jak jest to wskazane na stronie {{s|Status}}, względem szablonu nadrzędnego kolejno: {{s|Status/identyfikator}} i {{s|Status/interwiki}}. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 2f4gk0yvv3t5b6agdg7kqfge03avzxm Szablon:Link FA/Wikibooks-interwiki 10 63837 552015 551948 2026-08-16T17:08:01Z Persino 2851 552015 wikitext text/x-wiki <includeonly><!-- -->{{#if:{{{b|}}}<!-- -->|<!-- -->{{#if:{{{linia|}}}<!-- -->|<!-- -->{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|<!-- -->{{#tag:indicator<!-- -->|{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|name=indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}<!-- -->|class=metadata topicon<!-- -->|id=status-icon<!-- -->}}{{DivLinia}}<!-- -->}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczanyw identyfikatorze lub w tekście, w zalezności od wyboru. ; Parametry wyboru * {{Code|b}} - kod języka projektu siostrzanego odpowiednik w innych wersjach językowych polskiego {{NAZWASERWISU|link=tak|po=a}}, * {{Code|linia}} - czy wynik zablonu ma być umieszczowiony w identyfikatorze, czy w tekście. ; Inne parametry * Szablon też ptzyjmuje inne parametry przyjmowane przez ramkę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|{{m|Ramka|Szablon|Nazwa{{=}}Link FA/Wikibooks-pozycja}}}}. Jak wynik szabloni zostanie wtsawiony do identyfikatora, to zostanie po nim w w wikikodzie wywolanie szablonowe {{s|DivLinia}}, którynatoiast ma rozmiary zerowe, to wywołanie przedstawia punkt. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> cjiizg5jhbfvxnkxz06c31cfu3ams7o 552016 552015 2026-08-16T17:09:06Z Persino 2851 552016 wikitext text/x-wiki <includeonly><!-- -->{{#if:{{{b|}}}<!-- -->|<!-- -->{{#if:{{{linia|}}}<!-- -->|<!-- -->{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|<!-- -->{{#tag:indicator<!-- -->|{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|name=indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}<!-- -->|class=metadata topicon<!-- -->|id=status-icon<!-- -->}}{{DivLinia}}<!-- -->}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczanyw identyfikatorze lub w tekście, w zalezności od wyboru. ; Parametry wyboru * {{Code|b}} - kod języka projektu siostrzanego odpowiednik w innych wersjach językowych polskiego {{NAZWASERWISU|link=tak|po=a}}, * {{Code|linia}} - czy wynik zablonu ma być umieszczowiony w identyfikatorze, czy w tekście. ; Inne parametry * Szablon też przyjmuje inne parametry przyjmowane przez ramkę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|{{m|Ramka|Szablon|Nazwa{{=}}Link FA/Wikibooks-pozycja}}}}. Jak wynik szablonu zostanie wstawiony do identyfikatora, to zostanie po nim w w wikikodzie wywolanie szablonowe: {{Code|{{s|DivLinia}}}}, który natomiast ma rozmiary zerowe, to wywołanie przedstawia po prostu punkt. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> cwt1yn8v4g722gl1dbzwx93huj840wb 552021 552016 2026-08-16T17:19:54Z Persino 2851 552021 wikitext text/x-wiki <includeonly><!-- -->{{#if:{{{b|}}}<!-- -->|<!-- -->{{#if:{{{linia|}}}<!-- -->|<!-- -->{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|<!-- -->{{#tag:indicator<!-- -->|{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|name=indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}<!-- -->|class=metadata topicon<!-- -->|id=status-icon<!-- -->}}{{DivLinia}}<!-- -->}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczany w identyfikatorze lub w tekście, w zalezności od wyboru. ; Parametry wyboru * {{Code|b}} - kod języka projektu siostrzanego odpowiednik w innych wersjach językowych polskiego {{NAZWASERWISU|link=tak|po=a}}, * {{Code|linia}} - czy wynik zablonu ma być umieszczowiony w identyfikatorze, czy w tekście. ; Inne parametry * Szablon też przyjmuje inne parametry przyjmowane przez ramkę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|{{m|Ramka|Szablon|Nazwa{{=}}Link FA/Wikibooks-pozycja}}}}. Jak wynik szablonu zostanie wstawiony do identyfikatora, to zostanie po nim w w wikikodzie wywolanie szablonowe: {{Code|{{s|DivLinia}}}}, który natomiast ma rozmiary zerowe, to wywołanie przedstawia po prostu punkt. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 06stc03r0ll3ueobulkfg3dan20cejw 552022 552021 2026-08-16T17:20:11Z Persino 2851 552022 wikitext text/x-wiki <includeonly><!-- -->{{#if:{{{b|}}}<!-- -->|<!-- -->{{#if:{{{linia|}}}<!-- -->|<!-- -->{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|<!-- -->{{#tag:indicator<!-- -->|{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|name=indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}<!-- -->|class=metadata topicon<!-- -->|id=status-icon<!-- -->}}{{DivLinia}}<!-- -->}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczany w identyfikatorze lub w tekście, w zalezności od wyboru. ; Parametry wyboru * {{Code|b}} - kod języka projektu siostrzanego odpowiednik w innych wersjach językowych polskiego {{NAZWASERWISU|link=tak|po=a}}, * {{Code|linia}} - czy wynik szablonu ma być umieszczowiony w identyfikatorze, czy w tekście. ; Inne parametry * Szablon też przyjmuje inne parametry przyjmowane przez ramkę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|{{m|Ramka|Szablon|Nazwa{{=}}Link FA/Wikibooks-pozycja}}}}. Jak wynik szablonu zostanie wstawiony do identyfikatora, to zostanie po nim w w wikikodzie wywolanie szablonowe: {{Code|{{s|DivLinia}}}}, który natomiast ma rozmiary zerowe, to wywołanie przedstawia po prostu punkt. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 44kbczk6easzb49g999kygco82rlcuh 552032 552022 2026-08-16T18:08:09Z Persino 2851 552032 wikitext text/x-wiki <includeonly><!-- -->{{#if:{{{b|}}}<!-- -->|<!-- -->{{#if:{{{linia|}}}<!-- -->|<!-- -->{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|<!-- -->{{#tag:indicator<!-- -->|{{#invoke:Ramka|Szablon|Nazwa=Link FA/Wikibooks-pozycja}}<!-- -->|name=indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}<!-- -->|class=metadata topicon<!-- -->|id=status-icon<!-- -->}}{{DivLinia}}<!-- -->}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczany w identyfikatorze lub w tekście, w zalezności od wyboru. ; Parametry wyboru * {{Code|b}} - kod języka projektu siostrzanego odpowiednik w innych wersjach językowych polskiego {{NAZWASERWISU|link=tak|po=a}}, * {{Code|linia}} - czy wynik szablonu ma być umieszczowiony w identyfikatorze, czy w tekście. ; Inne parametry * Szablon też przyjmuje inne parametry przyjmowane przez ramkę języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|{{m|Ramka|Szablon|Nazwa{{=}}Link FA/Wikibooks-pozycja}}}}. Jak wynik szablonu zostanie wstawiony do identyfikatora, to zostanie po nim w w wikikodzie wywolanie szablonowe: {{Code|{{s|DivLinia}}}}, który natomiast ma rozmiary zerowe, to wywołanie przedstawia po prostu wtedy punkt. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> c7ntqvtalksrd74giwizfbbi0pj9y6e Szablon:Link FA/opis 10 63838 551970 551961 2026-08-16T13:49:11Z Persino 2851 /* Opis parametrów */ 551970 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.; ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator pliku, ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { } } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> dcp5mlpec1s5h42lt6x0oykcuxmjum9 551992 551970 2026-08-16T16:08:50Z Persino 2851 /* Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) */ 551992 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.; ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator pliku, ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "kod języka", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> om45h9j3t1lxpp8xc0irw17b2m0t0of 551993 551992 2026-08-16T16:12:01Z Persino 2851 /* Zobacz też */ 551993 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.; ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator pliku, ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "kod języka", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze rysunek wraz z linkiem ze statusem rysunkowym i linkowym, i inne tego typu z interwiki, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli taki nie istnieje, to angielski, * {{s|Opis kategorii}} - szablon opisu kaategorii, też umieszczający w identyfikatorze tego samego rodzaju linki rysunkowe. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> qqu6xa91cx0ykknp1d016agrvtpzvsy 551994 551993 2026-08-16T16:19:04Z Persino 2851 /* Zobacz też */ 551994 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.; ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator pliku, ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "kod języka", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == * Interwiki w identyfokatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli taki nie istnieje, to angielski, dla odpowiednich przestrzeni, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze rysunek wraz z linkiem ze statusem rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla kategorii, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> la9gicwty6p9m13tvy9aiamn0a7qdij 551995 551994 2026-08-16T16:20:38Z Persino 2851 /* Zobacz też */ 551995 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.; ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator pliku, ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "kod języka", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == * Interwiki w identyfokatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli taki nie istnieje, to angielski, dla odpowiednich przestrzeni, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze rysunek wraz z linkiem ze statusem rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> 28374eoh291xurfags8ej20qvyh4658 551996 551995 2026-08-16T16:21:45Z Persino 2851 /* Zobacz też */ 551996 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.; ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator pliku, ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "kod języka", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> p9tauj82gvcczvci2jjnul8xjb0bm7j 551997 551996 2026-08-16T16:24:29Z Persino 2851 /* Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) */ 551997 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.; ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator pliku, ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Kod języka projektu językowego dla innych wersji polskiego Wikibooks.", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> ls7yjfv3jnbyo66qakpackcyhi1q8le 551998 551997 2026-08-16T16:25:48Z Persino 2851 /* Opis parametrów */ 551998 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Kod języka projektu językowego dla innych wersji polskiego Wikibooks.", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> 2li655pk89tg00h3w54wux888uw88yl 552000 551998 2026-08-16T16:31:24Z Persino 2851 /* Zobacz też */ 552000 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Kod języka projektu językowego dla innych wersji polskiego Wikibooks.", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == {{Status/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> 7spo99heuufqozzz47b5u0yewh611x6 552003 552000 2026-08-16T16:34:06Z Persino 2851 /* Zobacz też */ 552003 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Kod języka projektu językowego dla innych wersji polskiego Wikibooks.", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> ewpx3317eg8g074wf8bxza1c9ql84tn 552019 552003 2026-08-16T17:14:00Z Persino 2851 /* Użycie */ 552019 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych {{NAZWASERWISU|link=tak|wikipedia=tak}}. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Kod języka projektu językowego dla innych wersji polskiego Wikibooks.", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> bpn3buhlv4habiv9tnx2gxckhpqxv8o 552020 552019 2026-08-16T17:14:30Z Persino 2851 /* Użycie */ 552020 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych {{NAZWASERWISU|link=tak|wikipedia=tak|po=ach}}. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Kod języka projektu językowego dla innych wersji polskiego Wikibooks.", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> 6ohnlb73gwcdfvogay1q55dpm1po0fc 552033 552020 2026-08-16T18:12:07Z Persino 2851 /* Opis parametrów */ 552033 wikitext text/x-wiki {{Podstrona dokumentacji}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == ; Zastosowanie szablonu * umieszczamy w linkach w identyfikatorze, * używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych {{NAZWASERWISU|link=tak|wikipedia=tak|po=ach}}. == Opis parametrów == ; Parametry podstawowe * {{Code|1}} - kod języka projektu językowego odpowiednika polskiego {{NAZWASERWISU|link=tak|wikipedia=tak|po=a}}, * {{Code|linia}} - lub gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. ; Parametry pudełkowe * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}} - parametry pudełkowe modułu: {{Code|{{m|Pudełko}}}}, '''nazwy przestrzeni nazw''' (jest to przestrzeń nazw) i '''nazwy jednostki''' (jest to nazwa strony bez przestrzeni nazw). == Przykład == * {{s|Link FA|de}} - wynik wywołania jest pokazany na górnym prawym rogu strony, w jej linii tytułu lub nad stroną. {{Link FA|de|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} * {{s|Link FA|de|linia{{=}}tak}} - wynik: {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}}. == Błędy == Błędy należy zgłaszać na stronie {{Kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Kod języka projektu językowego dla innych wersji polskiego Wikibooks.", "type": "string", "required": true }, "linia": { "description": "Gdy ten szablon ma być umieszczony nie w sekcji interwiki, tylko w tekście.", "type": "string" }, "styl plik": { "description": "Style, kaskadowych arkuszy stylów CSS, dla pliku.", "type": "string" }, "styl tekst": { "description": "Style, kaskadowych arkuszy stylów CSS, dla całości i ramki z tekstem.", "type": "string" }, "id": { "description": "Zastępczy identyfikator pliku.", "type": "string" }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw strony symulująca stronę bieżącą.", "type": "string" }, "nazwa jednostki": { "description": "Nazwa jednostki (nazwa strony bez przestrzeni nazw) strony symulująca stronę bieżącą.", "type": "string" } }, "description": "Umieszczamy w linkach w identyfikatorze lub w tekście po podaniu: „|linia=tak”. Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks." } </templatedata> == Zobacz też == {{Link FA/opis/Zobacz też}} {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategoria|Szablony stronicowe woluminów}} </includeonly> gfhm0o41go0dzwa997d68fdrnb4gqxv Szablon:Uprawa - roślina infobox/siostrzane numerkowe 10 63878 552088 550970 2026-08-17T07:17:47Z Persino 2851 552088 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}}| {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|wytnij=tak| {{((}}Uprawa - roślina infobox/siostrzane{{!}}projekt{{=}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{)))}}{{!}}szablon{{=}}{{{projekt}}}{{!}}nazwa{{=}}{{(((}}__{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}nazwa{{!}}{{((}}NAZWASUBSTRONY{{))}}{{)))}}{{)))}}{{)))}}{{))}} }} |{{Uprawa - roślina infobox/siostrzane|projekt={{{ {{{projekt}}}|}}}|szablon={{{projekt}}}|nazwa={{Pierwszy niepusty|{{{__{{{projekt|}}}|{{{ {{{projekt}}}|}}}}}}|{{NAZWASUBSTRONY}}}}}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon uruchamia, raz lub n razy, szablon danego szablonu projektu, możliwe projektu, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. Jeżeli w szablonie: {{s|Uprawa - roślina infobox}}, dana zmienne projektu jest uruchomiona tylko raz, wtedy się uruchamia bezpośrednio szablon: {{s|Uprawa - roślina infobox/siostrzane}}, z parametrami: * {{Code|projekt}} - nazwa projektu, którego zmienna oznacza zawartość pierwszego parametru w szablonie projektu, ** Zmienne linku to: {{Code|wikipedia}}, {{Code|wikibooks}}, {{Code|wikispecies}} i {{Code|commons}} ** Zmienne typu: {{Code|__wikipedia}}, {{Code|__wikibooks}}, {{Code|__wikispecies}} i {{Code|__commons}}, określają zmienną opisu szablonu danego projektu, Gdy wiele razy, wtedy zawartość pierwszego projektu określają nazwy: * Wtedy do nazwy zawartości pierwszego parametru i jego opisu po spacji jest dodawany numerek. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> jsdom0r0ii45er886ey5km0roxunhdv 552093 552088 2026-08-17T07:37:30Z Persino 2851 552093 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}}| {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|wytnij=tak| {{((}}Uprawa - roślina infobox/siostrzane{{!}}projekt{{=}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{)))}}{{!}}szablon{{=}}{{{projekt}}}{{!}}nazwa{{=}}{{(((}}__{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}nazwa{{!}}{{((}}NAZWASUBSTRONY{{))}}{{)))}}{{)))}}{{)))}}{{))}} }} |{{Uprawa - roślina infobox/siostrzane|projekt={{{ {{{projekt}}}|}}}|szablon={{{projekt}}}|nazwa={{Pierwszy niepusty|{{{__{{{projekt|}}}|{{{ {{{projekt}}}|}}}}}}|{{NAZWASUBSTRONY}}}}}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu: {{s|Uprawa - roślina infobox}}, do pozycji, jakimi są określone szablony projektu, dany taki szablon może być uruchamiany wiele razy. Szablon uruchamia, raz lub n razy, szablon danego szablonu projektu, możliwe projektu, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. Jeżeli w szablonie: {{s|Uprawa - roślina infobox}}, dana zmienne projektu jest uruchomiona tylko raz, wtedy się uruchamia bezpośrednio szablon: {{s|Uprawa - roślina infobox/siostrzane}}, z parametrami: * {{Code|projekt}} - nazwa projektu, którego zmienna oznacza zawartość pierwszego parametru w szablonie projektu, ** Zmienne linku to: {{Code|wikipedia}}, {{Code|wikibooks}}, {{Code|wikispecies}} i {{Code|commons}} ** Zmienne typu: {{Code|__wikipedia}}, {{Code|__wikibooks}}, {{Code|__wikispecies}} i {{Code|__commons}}, określają zmienną opisu szablonu danego projektu, Gdy wiele razy, wtedy zawartość pierwszego projektu określają nazwy: * Wtedy do nazwy zawartości pierwszego parametru i jego opisu po spacji jest dodawany numerek. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> ieeon3ia8of8x4azn5x9b56bj0fb8se 552094 552093 2026-08-17T07:40:00Z Persino 2851 552094 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}}| {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|wytnij=tak| {{((}}Uprawa - roślina infobox/siostrzane{{!}}projekt{{=}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{)))}}{{!}}szablon{{=}}{{{projekt}}}{{!}}nazwa{{=}}{{(((}}__{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}nazwa{{!}}{{((}}NAZWASUBSTRONY{{))}}{{)))}}{{)))}}{{)))}}{{))}} }} |{{Uprawa - roślina infobox/siostrzane|projekt={{{ {{{projekt}}}|}}}|szablon={{{projekt}}}|nazwa={{Pierwszy niepusty|{{{__{{{projekt|}}}|{{{ {{{projekt}}}|}}}}}}|{{NAZWASUBSTRONY}}}}}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu: {{s|Uprawa - roślina infobox}}, do pozycji, jakimi są określone szablony projektu, dany taki szablon może być uruchamiany wiele razy. Szablon uruchamia, raz lub n razy, szablon danego szablonu projektu, możliwe projektu, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. Jeżeli w szablonie: {{s|Uprawa - roślina infobox}}, dana zmienne projektu jest uruchomiona tylko raz, wtedy się uruchamia bezpośrednio szablon: {{s|Uprawa - roślina infobox/siostrzane}}, z parametrami: * {{Code|projekt}} - nazwa projektu, którego zmienna, którego zawartość oznacza nazwę pierwszego parametru nadrzędnym, uruchamiający po kolei szablony projektu raz, ** Zmienne linku to: {{Code|wikipedia}}, {{Code|wikibooks}}, {{Code|wikispecies}} i {{Code|commons}}, okreslają zawartości linkowe do stron na innych lub tym samym projekcie, ** Zmienne typu: {{Code|__wikipedia}}, {{Code|__wikibooks}}, {{Code|__wikispecies}} i {{Code|__commons}}, określają zmienną opisu szablonu danego projektu, Gdy wiele razy, wtedy zawartość pierwszego projektu określają nazwy: * Wtedy do nazwy zawartości pierwszego parametru i jego opisu po spacji jest dodawany numerek. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 79updbgl6chh4jz5st3hanyrb48c4ek 552136 552094 2026-08-17T11:42:35Z Persino 2851 552136 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}}| {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|wytnij=tak| {{((}}Uprawa - roślina infobox/siostrzane{{!}}projekt{{=}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{)))}}{{!}}szablon{{=}}{{{projekt}}}{{!}}nazwa{{=}}{{(((}}_{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}nazwa{{!}}{{((}}NAZWASUBSTRONY{{))}}{{)))}}{{)))}}{{)))}}{{))}} }} |{{Uprawa - roślina infobox/siostrzane|projekt={{{ {{{projekt}}}|}}}|szablon={{{projekt}}}|nazwa={{Pierwszy niepusty|{{{_{{{projekt|}}}|{{{ {{{projekt}}}|}}}}}}|{{NAZWASUBSTRONY}}}}}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu: {{s|Uprawa - roślina infobox}}, do pozycji, jakimi są określone szablony projektu, dany taki szablon może być uruchamiany wiele razy. Szablon uruchamia, raz lub n razy, szablon danego szablonu projektu, możliwe projektu, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. Jeżeli w szablonie: {{s|Uprawa - roślina infobox}}, dana zmienne projektu jest uruchomiona tylko raz, wtedy się uruchamia bezpośrednio szablon: {{s|Uprawa - roślina infobox/siostrzane}}, z parametrami: * {{Code|projekt}} - nazwa projektu, którego zmienna, którego zawartość oznacza nazwę pierwszego parametru nadrzędnym, uruchamiający po kolei szablony projektu raz, ** Zmienne linku to: {{Code|wikipedia}}, {{Code|wikibooks}}, {{Code|wikispecies}} i {{Code|commons}}, okreslają zawartości linkowe do stron na innych lub tym samym projekcie, ** Zmienne typu: {{Code|__wikipedia}}, {{Code|__wikibooks}}, {{Code|__wikispecies}} i {{Code|__commons}}, określają zmienną opisu szablonu danego projektu, Gdy wiele razy, wtedy zawartość pierwszego projektu określają nazwy: * Wtedy do nazwy zawartości pierwszego parametru i jego opisu po spacji jest dodawany numerek. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> aiyslwm46vymnja96lmuwhgxjy8y1nd 552138 552136 2026-08-17T11:43:48Z Persino 2851 552138 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}}| {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|wytnij=tak| {{((}}Uprawa - roślina infobox/siostrzane{{!}}projekt{{=}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{)))}}{{!}}szablon{{=}}{{{projekt}}}{{!}}nazwa{{=}}{{(((}}_{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}{{{projekt}}} {{((}}__{{))}}{{!}}{{(((}}nazwa{{!}}{{((}}NAZWASUBSTRONY{{))}}{{)))}}{{)))}}{{)))}}{{))}} }} |{{Uprawa - roślina infobox/siostrzane|projekt={{{ {{{projekt}}}|}}}|szablon={{{projekt}}}|nazwa={{Pierwszy niepusty|{{{_{{{projekt|}}}|{{{ {{{projekt}}}|}}}}}}|{{NAZWASUBSTRONY}}}}}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pomocniczy do szablonu: {{s|Uprawa - roślina infobox}}, do pozycji, jakimi są określone szablony projektu, dany taki szablon może być uruchamiany wiele razy. Szablon uruchamia, raz lub n razy, szablon danego szablonu projektu, możliwe projektu, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. Jeżeli w szablonie: {{s|Uprawa - roślina infobox}}, dana zmienne projektu jest uruchomiona tylko raz, wtedy się uruchamia bezpośrednio szablon: {{s|Uprawa - roślina infobox/siostrzane}}, z parametrami: * {{Code|projekt}} - nazwa projektu, którego zmienna, którego zawartość oznacza nazwę pierwszego parametru nadrzędnym, uruchamiający po kolei szablony projektu raz, ** Zmienne linku to: {{Code|wikipedia}}, {{Code|wikibooks}}, {{Code|wikispecies}} i {{Code|commons}}, okreslają zawartości linkowe do stron na innych lub tym samym projekcie, ** Zmienne typu: {{Code|_wikipedia}}, {{Code|_wikibooks}}, {{Code|_wikispecies}} i {{Code|_commons}}, określają zmienną opisu szablonu danego projektu, Gdy wiele razy, wtedy zawartość pierwszego projektu określają nazwy: * Wtedy do nazwy zawartości pierwszego parametru i jego opisu po spacji jest dodawany numerek. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 177esbr42v9j26smwjsz49y7almcnog Szablon:Uprawa - roślina infobox/siostrzane parametry 10 63879 552089 550952 2026-08-17T07:29:04Z Persino 2851 552089 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}} | {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|po kolei=tak|nie rozwiń=tak |{{!}} {{{projekt}}} {{((}}__{{))}} {{=}} {{!}} __{{{projekt}}} {{((}}__{{))}} {{=}} }} | {{!}} {{{projekt}}} {{=}} {{!}} __{{{projekt}}} {{=}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pozycji dla danego szablonu projektu, możliwe szablony, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. ; Parametry użyte w szablonie: * {{Code|projekt}} - nazwa projektu, którego zmienna,określa jak się nazwyw dany projekt. * Gdy zmienną użyto tylko raz, możliwwe wartości do wydrukowania: ** Zawartość zmiennej jest to nazwa zawartości linku do danego projektu, ** Gdy przed tą nazwa danego projektu, dla danego szablonu jego, gdy jest postaiony podwójny dolny myślnik, to jest to nazwa opisu danego linku w szablonie projektu, * Gdy zmienną uzyto n razy: ** Do zmiennych zawartości linkowej danego projektu i jego zmiennej opisu jest dodawany na końcu po spacji numerek. Numerki tak po układane są po kolei, od {{Code|1}}, wzwyż, aż do pewnego numerumaksymalnego, określonej przez maksymalny numer dla użycia danego szablonu projektu, użytą w szablonie: {{s|Uprawa - roślina infobox}}. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 34iqukdt3m7twoi1dipdqftxny25wbv 552090 552089 2026-08-17T07:32:31Z Persino 2851 552090 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}} | {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|po kolei=tak|nie rozwiń=tak |{{!}} {{{projekt}}} {{((}}__{{))}} {{=}} {{!}} __{{{projekt}}} {{((}}__{{))}} {{=}} }} | {{!}} {{{projekt}}} {{=}} {{!}} __{{{projekt}}} {{=}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pozycji dla danego szablonu projektu, możliwe szablony, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. ; Parametry użyte w szablonie: * {{Code|projekt}} - nazwa projektu, którego zmienna, określa, jak się nazwywa dany projekt. Szablon przedstawia pozycje dla danego szablonu projektu w szablonie: {{|m|Sprawdź|Parametry}}, użytą w: {{s|Uprawa - roślina infobox}}. * Gdy zmienną użyto tylko raz, możliwwe wartości do wydrukowania: ** Zawartość zmiennej danego projektu jest to nazwa zawartości linku do danego projektu, ** Gdy przed tą nazwa danego projektu, dla danego szablonu jego, gdy jest postawiony podwójny dolny myślnik, to jest to nazwa opisu danego linku w szablonie projektu, * Gdy zmienną uzyto n razy: ** Do zmiennych zawartości linkowej danego projektu i jego zmiennej opisu jest dodawany na końcu po spacji numerek. Numerki tak po układane są po kolei, od {{Code|1}}, wzwyż, aż do pewnego numerumaksymalnego, określonej przez maksymalny numer dla użycia danego szablonu projektu, użytą w szablonie nadrzędnym. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> e34xm7vuegzw7yc5v4guap55p0fjw8k 552100 552090 2026-08-17T07:49:16Z Persino 2851 552100 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}} | {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|po kolei=tak|nie rozwiń=tak |{{!}} {{{projekt}}} {{((}}__{{))}} {{=}} {{!}} __{{{projekt}}} {{((}}__{{))}} {{=}} }} | {{!}} {{{projekt}}} {{=}} {{!}} __{{{projekt}}} {{=}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pozycji dla danego szablonu projektu, możliwe szablony, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. ; Parametry użyte w szablonie: * {{Code|projekt}} - nazwa projektu, którego zmienna, określa, jak się nazywa dany projekt. Szablon przedstawia pozycje dla danego szablonu projektu w szablonie: {{|m|Sprawdź|Parametry}}, użytą w: {{s|Uprawa - roślina infobox}}. * Gdy zmienną użyto tylko raz, możliwwe wartości do wydrukowania: ** Zawartość zmiennej danego projektu, jest to nazwa zawartości linku do danego projektu, ** Gdy przed tą nazwa danego projektu, dla danego szablonu jego, gdy jest postawiony podwójny dolny myślnik, to jest to nazwa opisu danego linku w szablonie projektu, * Gdy zmienną uzyto n razy: ** Do zmiennych zawartości linkowej danego projektu i jego zmiennej opisu jest dodawany na końcu po spacji numerek. Numerki tak są poukładane po kolei, od {{Code|1}}, wzwyż, aż do pewnego numeru maksymalnego, określonej przez maksymalny numer dla użycia danego szablonu projektu, użytą w szablonie nadrzędnym. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> ezm5uo9tu7ch403aa7xal1sm0rz7kdn 552101 552100 2026-08-17T07:49:43Z Persino 2851 552101 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}} | {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|po kolei=tak|nie rozwiń=tak |{{!}} {{{projekt}}} {{((}}__{{))}} {{=}} {{!}} __{{{projekt}}} {{((}}__{{))}} {{=}} }} | {{!}} {{{projekt}}} {{=}} {{!}} __{{{projekt}}} {{=}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pozycji dla danego szablonu projektu, możliwe szablony, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. ; Parametry użyte w szablonie: * {{Code|projekt}} - nazwa projektu, którego zmienna, określa, jak się nazywa dany projekt. Szablon przedstawia pozycje dla danego szablonu projektu w szablonie: {{m|Sprawdź|Parametry}}, użytą w: {{s|Uprawa - roślina infobox}}. * Gdy zmienną użyto tylko raz, możliwwe wartości do wydrukowania: ** Zawartość zmiennej danego projektu, jest to nazwa zawartości linku do danego projektu, ** Gdy przed tą nazwa danego projektu, dla danego szablonu jego, gdy jest postawiony podwójny dolny myślnik, to jest to nazwa opisu danego linku w szablonie projektu, * Gdy zmienną uzyto n razy: ** Do zmiennych zawartości linkowej danego projektu i jego zmiennej opisu jest dodawany na końcu po spacji numerek. Numerki tak są poukładane po kolei, od {{Code|1}}, wzwyż, aż do pewnego numeru maksymalnego, określonej przez maksymalny numer dla użycia danego szablonu projektu, użytą w szablonie nadrzędnym. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> q31gajyyi74flez1bf3z19rk6x29ecm 552137 552101 2026-08-17T11:43:16Z Persino 2851 552137 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}} | {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|po kolei=tak|nie rozwiń=tak |{{!}} {{{projekt}}} {{((}}__{{))}} {{=}} {{!}} _{{{projekt}}} {{((}}__{{))}} {{=}} }} | {{!}} {{{projekt}}} {{=}} {{!}} _{{{projekt}}} {{=}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pozycji dla danego szablonu projektu, możliwe szablony, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. ; Parametry użyte w szablonie: * {{Code|projekt}} - nazwa projektu, którego zmienna, określa, jak się nazywa dany projekt. Szablon przedstawia pozycje dla danego szablonu projektu w szablonie: {{m|Sprawdź|Parametry}}, użytą w: {{s|Uprawa - roślina infobox}}. * Gdy zmienną użyto tylko raz, możliwwe wartości do wydrukowania: ** Zawartość zmiennej danego projektu, jest to nazwa zawartości linku do danego projektu, ** Gdy przed tą nazwa danego projektu, dla danego szablonu jego, gdy jest postawiony podwójny dolny myślnik, to jest to nazwa opisu danego linku w szablonie projektu, * Gdy zmienną uzyto n razy: ** Do zmiennych zawartości linkowej danego projektu i jego zmiennej opisu jest dodawany na końcu po spacji numerek. Numerki tak są poukładane po kolei, od {{Code|1}}, wzwyż, aż do pewnego numeru maksymalnego, określonej przez maksymalny numer dla użycia danego szablonu projektu, użytą w szablonie nadrzędnym. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> 6p1ayxoripjnrmieri2jc3a0kgel339 552145 552137 2026-08-17T11:55:19Z Persino 2851 552145 wikitext text/x-wiki <includeonly>{{#if:{{#invoke:Ramka|Powtarzaj|start=2|wytnij=tak|nie rozwiń=tak|parametry={{{projekt}}}|tak}} | {{#invoke:Ramka|Powtarzaj|parametry={{{projekt}}}|po kolei=tak|nie rozwiń=tak |{{!}} {{{projekt}}} {{((}}__{{))}} {{=}} {{!}} _{{{projekt}}} {{((}}__{{))}} {{=}} }} | {{!}} {{{projekt}}} {{=}} {{!}} _{{{projekt}}} {{=}} }}</includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon pozycji dla danego szablonu projektu, możliwe szablony, to: {{s|Wikipedia}}, {{s|Wikibooks}}, {{s|Wikispecies}} lub {{s|Commons}}. ; Parametry użyte w szablonie: * {{Code|projekt}} - nazwa projektu, którego zmienna, określa, jak się nazywa dany projekt. Szablon przedstawia pozycje dla danego szablonu projektu w szablonie: {{m|Sprawdź|Parametry}}, użytą w: {{s|Uprawa - roślina infobox}}. * Gdy zmienną użyto tylko raz, możliwwe wartości do wydrukowania: ** Zawartość zmiennej danego projektu, jest to nazwa zawartości linku do danego projektu, ** Gdy przed tą nazwa danego projektu, dla danego szablonu jego, gdy jest postawiony pojedynczy dolny myślnik, to jest to nazwa opisu danego linku w szablonie projektu, * Gdy zmienną uzyto n razy: ** Do zmiennych zawartości linkowej danego projektu i jego zmiennej opisu jest dodawany na końcu po spacji numerek. Numerki tak są poukładane po kolei, od {{Code|1}}, wzwyż, aż do pewnego numeru maksymalnego, określonej przez maksymalny numer dla użycia danego szablonu projektu, użytą w szablonie nadrzędnym. }}{{Kategoria|Szablony problemów - technikalia}}</noinclude> d1ai6qpwio77dlvsuthfe47u1vw8sn2 Moduł:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne 828 63947 551966 551849 2026-08-16T13:09:46Z Persino 2851 551966 Scribunto text/plain local p={}; p.ZamienNumerArtykuluNaTabele=function(numer_artykulu) local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true); return tab_numer_artykulu; end; p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) if(#tab_numer_artykulu<=1)then return tab_numer_artykulu;end; local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local parametry_modul=require("Module:Parametry"); local nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly=stronicowyparser_modul["DaneUkładuAutonawigacji"](frame,tabela_listy_danych_analizy_ksiazki); if((not tab_inne_spisy)or(not parametry_modul["CzySąElementyNumerowaneTablicy"](tab_inne_spisy)))then return tab_numer_artykulu;end; local tab_w_spis={}; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu=tab_lista[1][2][1]; if(tab_lista[2])then for p,artykul_w_bazie in ipairs(tab_lista[2])do if((m>1)and(poziom_rozdzialu==1))then break;end; local czy_table_baza_artykulu=parametry_modul.TypeTable(artykul_w_bazie[1]); local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; local przekierowanie=czy_table_baza_artykulu and artykul_w_bazie[1][3] or nil; local czy_artykul=nil; for _,tab_lub_str in ipairs(tab_inne_spisy)do local czy_tab_lub_str=parametry_modul.TypeTable(tab_lub_str); if(czy_tab_lub_str)then if(tab_lub_str[1]==artykul)then czy_artykul=true; end; else if(tab_lub_str==artykul)then czy_artykul=true; end; end; end; if(czy_artykul)then tab_w_spis[artykul]=true; end; end; end; end; local czy_w_spis=true; for _,name in ipairs(tab_inne_spisy)do local czy_table_name=parametry_modul.TypeTable(name); czy_w_spis=czy_w_spis and tab_w_spis[czy_table_name and name[1] or name]; if(not czy_w_spis)then break;end; end; if(not czy_w_spis)then return tab_numer_artykulu; end; if((tab_numer_artykulu)and(#tab_numer_artykulu>1)and(tab_numer_artykulu[1])and(tab_numer_artykulu[1]=='1'))then table.remove(tab_numer_artykulu,1); end; if((tab_numer_artykulu)and(#tab_numer_artykulu>1)and(tab_numer_artykulu[1])and(tab_numer_artykulu[1]=='1'))then local nazwa_spisu,numer_spisu; local czy_jedno=true;local pierwszy_rozdzial; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu=tab_lista[1][2][1]; if(m>1)then if(poziom_rozdzialu==1)then break; elseif(m==2)then pierwszy_rozdzial=poziom_rozdzialu; elseif(m>2)then czy_jedno=czy_jedno and pierwszy_rozdzial and (pierwszy_rozdzial<poziom_rozdzialu); end; end; end; if(czy_jedno)then table.remove(tab_numer_artykulu,1); end; end; return tab_numer_artykulu; end; p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu) local tab_numer_artykulu=p.ZamienNumerArtykuluNaTabele(numer_artykulu); if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end; local tab_numer_spisu=p.ZamienNumerArtykuluNaTabele(numer_spisu); local lens=#tab_numer_spisu; for i=lens,1,-1 do if(i==lens)then tab_numer_artykulu[1]=tab_numer_spisu[i]; else table.insert(tab_numer_artykulu,1,tab_numer_spisu[i]); end; end; return tab_numer_artykulu; end; p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo) return ((nazwa_spisu)and(numer_spisu)) and( ( (numer_spisu==1)and( ((#tab_numer>0)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo>0)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) or( (numer_spisu>1) and( ((#tab_numer==1)and(#tab_poziomowo==0)and((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo==1)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) ); end; return p; k8mbkd18qirs2k464oit43mfm2j1zoo 551969 551966 2026-08-16T13:26:58Z Persino 2851 551969 Scribunto text/plain local p={}; p.ZamienNumerArtykuluNaTabele=function(numer_artykulu) local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true); return tab_numer_artykulu; end; p.UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci=function(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) if(#tab_numer_artykulu<=1)then return tab_numer_artykulu;end; local stronicowyparser_modul=require("Module:StronicowyParser"); local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); local parametry_modul=require("Module:Parametry"); local nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly=stronicowyparser_modul["DaneUkładuAutonawigacji"](frame,tabela_listy_danych_analizy_ksiazki); if((not tab_inne_spisy)or(not parametry_modul["CzySąElementyNumerowaneTablicy"](tab_inne_spisy)))then return tab_numer_artykulu;end; local tab_w_spis={}; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu=tab_lista[1][2][1]; if(tab_lista[2])then for p,artykul_w_bazie in ipairs(tab_lista[2])do if((m>1)and(poziom_rozdzialu==1))then break;end; local czy_table_baza_artykulu=parametry_modul.TypeTable(artykul_w_bazie[1]); local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1]; local przekierowanie=czy_table_baza_artykulu and artykul_w_bazie[1][3] or nil; local czy_artykul=nil; for _,tab_lub_str in ipairs(tab_inne_spisy)do local czy_tab_lub_str=parametry_modul.TypeTable(tab_lub_str); if(czy_tab_lub_str)then if(tab_lub_str[1]==artykul)then czy_artykul=true; end; else if(tab_lub_str==artykul)then czy_artykul=true; end; end; end; if(czy_artykul)then tab_w_spis[artykul]=true; end; end; end; end; local czy_w_spis=true; for _,name in ipairs(tab_inne_spisy)do local czy_table_name=parametry_modul.TypeTable(name); czy_w_spis=czy_w_spis and tab_w_spis[czy_table_name and name[1] or name]; if(not czy_w_spis)then break;end; end; if(not czy_w_spis)then return tab_numer_artykulu; end; if((tab_numer_artykulu)and(#tab_numer_artykulu>1)and(tab_numer_artykulu[1])and(tab_numer_artykulu[1]=='1'))then table.remove(tab_numer_artykulu,1); end; if((tab_numer_artykulu)and(#tab_numer_artykulu>1)and(tab_numer_artykulu[1])and(tab_numer_artykulu[1]=='1'))then local nazwa_spisu,numer_spisu; local czy_jedno=true;local pierwszy_rozdzial; for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do local poziom_rozdzialu=tab_lista[1][2][1]; if(m>1)then if(poziom_rozdzialu==1)then break; elseif(m==2)then pierwszy_rozdzial=poziom_rozdzialu; elseif(m>2)then czy_jedno=czy_jedno and pierwszy_rozdzial and (pierwszy_rozdzial<poziom_rozdzialu); end; end; end; if(czy_jedno)then table.remove(tab_numer_artykulu,1); end; end; return tab_numer_artykulu; end; p.IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci=function(numer_artykulu,numer_spisu) local tab_numer_artykulu=p.ZamienNumerArtykuluNaTabele(numer_artykulu); if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end; local tab_numer_spisu=p.ZamienNumerArtykuluNaTabele(numer_spisu); local lens=#tab_numer_spisu; for i=lens,1,-1 do if(i==lens)then tab_numer_artykulu[1]=tab_numer_spisu[i]; else table.insert(tab_numer_artykulu,1,tab_numer_spisu[i]); end; end; return tab_numer_artykulu; end; p.WarunekSpisuWoluminu=function(nazwa_spisu,numer_spisu,tab_numer,tab_poziomowo) return ( ( (numer_spisu==1)and( ((#tab_numer>0)and ((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo>0)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) or( (numer_spisu>1) and( ((#tab_numer==1)and(#tab_poziomowo==0)and((tonumber(tab_numer[1])or 1)>1)) or((#tab_numer==0)and(#tab_poziomowo==1)and ((tonumber(tab_poziomowo[1])or 1)>1)) ) ) ); end; return p; mafc9njkzkemsa1ef4xi1nx74ms0hco Szablon:Link FA/Wikibooks-pozycja 10 63951 552014 551959 2026-08-16T17:01:33Z Persino 2851 552014 wikitext text/x-wiki <includeonly><!-- -->{{Span|klasa=Szablon_Link_FA|styl={{{styl tekst|}}}<!-- -->|<!-- --><templatestyles src="Szablon:Link FA/style.css"/><!-- -->{{Plik | plik = LinkFA-star.png | id = {{Jeśli niepuste|{{{id|}}}|indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}-plik}} | rozmiar = {{{rozmiar plik|}}} | klasa = Szablon_Link_FA-Plik | styl = {{{styl plik|}}} | opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}} | link = {{{b|en}}}:{{{strona|_}}} }} {{Span|klasa=Szablon_Link_FA-Tekst|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczanyw identyfikatorze lub w tekście. ; Parametry podstawowe * {{Code|b}} - kod języka projektu wersji językowej polskiego {{NAZWASERWISU|link=tak|po=a}}. * {{Code|strona}} - a tam jego strona, odpiwied nik strony na polskim tym projekcie. ; Parametry formatu * {{Code|rozmiar plik}} - rozmiar pliku,ma taki sam format, jak format rozmiaru dla szablonu {{s|Plik}}. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 7okj3aooyo8iata5jmnm66obg3uwy33 552017 552014 2026-08-16T17:10:19Z Persino 2851 552017 wikitext text/x-wiki <includeonly><!-- -->{{Span|klasa=Szablon_Link_FA|styl={{{styl tekst|}}}<!-- -->|<!-- --><templatestyles src="Szablon:Link FA/style.css"/><!-- -->{{Plik | plik = LinkFA-star.png | id = {{Jeśli niepuste|{{{id|}}}|indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}-plik}} | rozmiar = {{{rozmiar plik|}}} | klasa = Szablon_Link_FA-Plik | styl = {{{styl plik|}}} | opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}} | link = {{{b|en}}}:{{{strona|_}}} }} {{Span|klasa=Szablon_Link_FA-Tekst|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczany w identyfikatorze lub w tekście, w zzależności od ustawień szablonu nadrzędnego. ; Parametry podstawowe * {{Code|b}} - kod języka projektu wersji językowej polskiego {{NAZWASERWISU|link=tak|po=a}}. * {{Code|strona}} - a tam jego strona, odpiwied nik strony na polskim tym projekcie. ; Parametry formatu * {{Code|rozmiar plik}} - rozmiar pliku,ma taki sam format, jak format rozmiaru dla szablonu {{s|Plik}}. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> ldhcmfbaq02cjstnilm0utbr919flfq 552023 552017 2026-08-16T17:21:08Z Persino 2851 552023 wikitext text/x-wiki <includeonly><!-- -->{{Span|klasa=Szablon_Link_FA|styl={{{styl tekst|}}}<!-- -->|<!-- --><templatestyles src="Szablon:Link FA/style.css"/><!-- -->{{Plik | plik = LinkFA-star.png | id = {{Jeśli niepuste|{{{id|}}}|indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}-plik}} | rozmiar = {{{rozmiar plik|}}} | klasa = Szablon_Link_FA-Plik | styl = {{{styl plik|}}} | opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}} | link = {{{b|en}}}:{{{strona|_}}} }} {{Span|klasa=Szablon_Link_FA-Tekst|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczany w identyfikatorze lub w tekście, w zzależności od ustawień szablonu nadrzędnego. ; Parametry podstawowe * {{Code|b}} - kod języka projektu wersji językowej polskiego {{NAZWASERWISU|link=tak|po=a}}. * {{Code|strona}} - a tam jego strona, odpowiednik strony na polskim tym projekcie. ; Parametry formatu * {{Code|rozmiar plik}} - rozmiar pliku,ma taki sam format, jak format rozmiaru dla szablonu {{s|Plik}}. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> oyhtaw210qji3moijso7etohlcrton7 552030 552023 2026-08-16T18:06:59Z Persino 2851 552030 wikitext text/x-wiki <includeonly><!-- -->{{Span|klasa=Szablon_Link_FA|styl={{{styl tekst|}}}<!-- -->|<!-- --><templatestyles src="Szablon:Link FA/style.css"/><!-- -->{{Plik | plik = LinkFA-star.png | id = {{Jeśli niepuste|{{{id|}}}|indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}-plik}} | rozmiar = {{{rozmiar plik|}}} | klasa = Szablon_Link_FA-Plik | styl = {{{styl plik|}}} | opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}} | link = {{{b|en}}}:{{{strona|_}}} }} {{Span|klasa=Szablon_Link_FA-Tekst|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczany w identyfikatorze lub w tekście, w zzależności od ustawień szablonu nadrzędnego. ; Parametry podstawowe * {{Code|b}} - kod języka projektu wersji językowej polskiego {{NAZWASERWISU|link=tak|po=a}}. * {{Code|strona}} - a tam jego strona, odpowiednik, strony na polskim tym projekcie. ; Parametry formatu * {{Code|rozmiar plik}} - rozmiar pliku, ma taki sam format, jak format rozmiaru dla szablonu {{s|Plik}}. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 7t5rkeq1oqy8cr7j3uojkw08oblewyo 552031 552030 2026-08-16T18:07:23Z Persino 2851 552031 wikitext text/x-wiki <includeonly><!-- -->{{Span|klasa=Szablon_Link_FA|styl={{{styl tekst|}}}<!-- -->|<!-- --><templatestyles src="Szablon:Link FA/style.css"/><!-- -->{{Plik | plik = LinkFA-star.png | id = {{Jeśli niepuste|{{{id|}}}|indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{pudełko|}}}|przed lewy=-}}-plik}} | rozmiar = {{{rozmiar plik|}}} | klasa = Szablon_Link_FA-Plik | styl = {{{styl plik|}}} | opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}} | link = {{{b|en}}}:{{{strona|_}}} }} {{Span|klasa=Szablon_Link_FA-Tekst|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!-- -->}}<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon wywołania plikowego z plikiem linkiem, do niego z tekstem po prawej stronie, umieszczany w identyfikatorze lub w tekście, w zzależności od ustawień szablonu nadrzędnego. ; Parametry podstawowe * {{Code|b}} - kod języka projektu wersji językowej polskiego {{NAZWASERWISU|link=tak|po=a}}, * {{Code|strona}} - a tam jego strona, odpowiednik, strony na polskim tym projekcie. ; Parametry formatu * {{Code|rozmiar plik}} - rozmiar pliku, ma taki sam format, jak format rozmiaru dla szablonu {{s|Plik}}. ; Parametry dodatkowe * {{Code|styl plik}} - styl dla ramki z plikiem, * {{Code|styl tekst}} - styl, dla znacznika {{s|span}}, dla całości i ramki z tekstem, * {{Code|id}} - zastępczy identyfikator plik. }}<!-- -->{{Kategoria|Szablony problemów - technikalia}}<!-- --></noinclude> 2x0zti2jfxkruhlct72rh7s7zgym285 Szablon:Link FA/style.css 10 63952 551971 551954 2026-08-16T13:53:22Z Persino 2851 551971 sanitized-css text/css span.Szablon_Link_FA, span.Szablon_Link_FA span.Szablon_Link_FA-Tekst{ font-size:1em; line-height:1.2; display:inline-block; vertical-align:middle; } span.Szablon_Link_FA span.Szablon_Link_FA-Plik{ font-size:1em; line-height:1.2; width:fit-content; height:fit-content; display:inline-block; vertical-align:middle; } /*{{Kategoria|Szablony - arkusze stylów}}*/ 7faka4v84u0o9yer30vj7nuxzo6fzrk 551972 551971 2026-08-16T13:53:49Z Persino 2851 551972 sanitized-css text/css span.Szablon_Link_FA, span.Szablon_Link_FA span.Szablon_Link_FA-Tekst{ font-size:1em; line-height:1.2; display:inline-block; vertical-align:bottom; } span.Szablon_Link_FA span.Szablon_Link_FA-Plik{ font-size:1em; line-height:1.2; width:fit-content; height:fit-content; display:inline-block; vertical-align:bottom; } /*{{Kategoria|Szablony - arkusze stylów}}*/ qexapigb23r307unngnqxef1z9xgte2 551973 551972 2026-08-16T13:54:34Z Persino 2851 551973 sanitized-css text/css span.Szablon_Link_FA, span.Szablon_Link_FA span.Szablon_Link_FA-Tekst{ font-size:1em; line-height:1.2; display:inline-block; vertical-align:text-bottom; } span.Szablon_Link_FA span.Szablon_Link_FA-Plik{ font-size:1em; line-height:1.2; width:fit-content; height:fit-content; display:inline-block; vertical-align:bottom; } /*{{Kategoria|Szablony - arkusze stylów}}*/ itrm94xp089ltb4hcg2n476ggw8vwlu 551974 551973 2026-08-16T13:55:56Z Persino 2851 551974 sanitized-css text/css span.Szablon_Link_FA, span.Szablon_Link_FA span.Szablon_Link_FA-Tekst{ font-size:1em; line-height:1.2; display:inline-block; vertical-align:text-bottom; } span.Szablon_Link_FA span.Szablon_Link_FA-Plik{ font-size:1em; line-height:1.2; width:fit-content; height:fit-content; display:inline-block; vertical-align:top; } /*{{Kategoria|Szablony - arkusze stylów}}*/ kgmnu617zvi7u31kq2hz2se0jxwxam5 Szablon:Link FA/opis/Zobacz też 10 63953 551999 2026-08-16T16:30:53Z Persino 2851 Utworzono nową stronę „<includeonly> * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linko…” 551999 wikitext text/x-wiki <includeonly> * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}.<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> 7vyo821bwo2fosli5io7oh4ikfd7hkf 552001 551999 2026-08-16T16:32:24Z Persino 2851 552001 wikitext text/x-wiki <includeonly> ; Opis ogólny * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}.<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> js716uzn848acqyuh1ztxi3ju9mx63g 552002 552001 2026-08-16T16:33:23Z Persino 2851 Persino przeniósł(-osła) stronę [[Szablon:Status/opis/Zobacz też]] do [[Szablon:Link FA/opis/Zobacz też]], bez pozostawienia przekierowania pod starym tytułem 552001 wikitext text/x-wiki <includeonly> ; Opis ogólny * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}.<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> js716uzn848acqyuh1ztxi3ju9mx63g 552013 552002 2026-08-16T16:53:57Z Persino 2851 552013 wikitext text/x-wiki <includeonly> ; Opis ogólny * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, też umieszczający w identyfikatorze, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Link FA}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 1qrrjm3qxpc7ucee63yg948nswg01bn 552024 552013 2026-08-16T17:24:27Z Persino 2851 tus 552024 wikitext text/x-wiki <includeonly> ; Opis ogólny * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} - szablon opisu kategorii, ale nie umieszczający w identyfikatorze, tylko w szablonie: {{s|Siostrzane projekty}}, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, ale też tam są linki do innych projektów, jak w szablonie {{s|Status}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Link FA}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> eh3i6a2wabwc0qosd7nhrmlu9yarpc6 552025 552024 2026-08-16T17:25:34Z Persino 2851 552025 wikitext text/x-wiki <includeonly> ; Opis ogólny * Interwiki w identyfikatorze są takie wstawiane, jakie istnieją na możliwie polskich projektach, a ewentualnie, jeżeli takie nie istnieją, to angielski, dla odpowiednich przestrzeni nazw, w zależnosci od szablonu, w jakim jest używany. ; Szablony umiejszczające linki rysunkowe statusu i interwiki * {{s|Status}} - szablon statusu ukończenia strony, umieszczająca w identyfikatorze, rysunek wraz z linkiem, ze statusem, rysunkowym i linkowym, i inne tego typu z interwiki, dla przestrzeni nazw kolejno: {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}}, ; Szablony umiejszczające linki rysunkowe tylko interwiki * {{s|Opis kategorii}} lub {{s|Opis kategorii 2}} - szablon opisu kategorii, ale nie umieszczający w identyfikatorze, tylko w szablonie: {{s|Siostrzane projekty}}, ale dla przestrzeni nazw: {{Np|Category|link=tak}}, ale też tam są linki do innych projektów, jak w szablonie {{s|Status}}, * {{s|Dokumentacja}} - szablon do opisu szablonów, a tutaj dla stron szablonów, dla przestrzeni nazw: {{Np|Template|link=tak}}.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Link FA}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 8aaufjeipumaxbojinghzdinam2idbv Szablon:Status/opis/Zobacz też 10 63954 552004 2026-08-16T16:37:19Z Persino 2851 Utworzono nową stronę „<includeonly> ; Funkcje kompletności * {{s|Książka}} - szablon przedstawia link do książki, stopień ukończenia z datą tego zauważenia, i informację do książki, * {{s|Kompletność}} i {{s|Kompletność krótka}} - przedstawia stopień ukończenia artykułu z datą jego dodania, * {{s|Kategoria}} - szablon dodaje jedną kategorie do strony, odpowiednio, jeśli tego nie oznaczono inaczej, z nazwą sortowania danej strony. ; Funkcje pudełkowe z któr…” 552004 wikitext text/x-wiki <includeonly> ; Funkcje kompletności * {{s|Książka}} - szablon przedstawia link do książki, stopień ukończenia z datą tego zauważenia, i informację do książki, * {{s|Kompletność}} i {{s|Kompletność krótka}} - przedstawia stopień ukończenia artykułu z datą jego dodania, * {{s|Kategoria}} - szablon dodaje jedną kategorie do strony, odpowiednio, jeśli tego nie oznaczono inaczej, z nazwą sortowania danej strony. ; Funkcje pudełkowe z których korzysta ten szablon * {{m|Pudełko}} - funkcje modułu, z których korzysta ten szablon, co do nazwy przestrzeni nazw: {{m|Pudełko|Nazwa przestrzeni nazw 2}}, i nazwy jednostki: {{m|Pudełko|Nazwa jednostki 2}}. ; Indicator (prawy górny róg w linii tytułu lub nad stroną, ale pod tytułem) * {{s|Skrót}} - skróty do strony podawane w formie starej lub nagłówkowej, w zależności od wyboru, * {{s|Skrót szablonu}} - skróty szablonu podawane w szablonie oddzielone znakami potoku, wyświetlane w formie starej lub nagłówkowej, w zależności od wyboru.<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> q436dkhc1cgn8fdn9rrsl9ezafmi459 552006 552004 2026-08-16T16:38:10Z Persino 2851 552006 wikitext text/x-wiki <includeonly> ; Funkcje kompletności * {{s|Książka}} - szablon przedstawia link do książki, stopień ukończenia z datą tego zauważenia, i informację do książki, * {{s|Kompletność}} i {{s|Kompletność krótka}} - przedstawia stopień ukończenia artykułu z datą jego dodania, * {{s|Kategoria}} - szablon dodaje jedną kategorie do strony, odpowiednio, jeśli tego nie oznaczono inaczej, z nazwą sortowania danej strony. ; Funkcje pudełkowe, z których korzysta ten szablon * {{m|Pudełko}} - funkcje modułu, z których korzysta ten szablon, co do nazwy przestrzeni nazw: {{m|Pudełko|Nazwa przestrzeni nazw 2}}, i nazwy jednostki: {{m|Pudełko|Nazwa jednostki 2}}. ; Indicator (prawy górny róg w linii tytułu lub nad stroną, ale pod tytułem) * {{s|Skrót}} - skróty do strony podawane w formie starej lub nagłówkowej, w zależności od wyboru, * {{s|Skrót szablonu}} - skróty szablonu podawane w szablonie oddzielone znakami potoku, wyświetlane w formie starej lub nagłówkowej, w zależności od wyboru.<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> aps0uc63eioot7u1npw3wcqdan38qxf 552011 552006 2026-08-16T16:51:57Z Persino 2851 552011 wikitext text/x-wiki <includeonly> ; Funkcje kompletności * {{s|Książka}} - szablon przedstawia link do książki, stopień ukończenia z datą tego zauważenia, i informację do książki, * {{s|Kompletność}} i {{s|Kompletność krótka}} - przedstawia stopień ukończenia artykułu z datą jego dodania, * {{s|Kategoria}} - szablon dodaje jedną kategorie do strony, odpowiednio, jeśli tego nie oznaczono inaczej, z nazwą sortowania danej strony. ; Funkcje pudełkowe, z których korzysta ten szablon * {{m|Pudełko}} - funkcje modułu, z których korzysta ten szablon, co do nazwy przestrzeni nazw: {{m|Pudełko|Nazwa przestrzeni nazw 2}}, i nazwy jednostki: {{m|Pudełko|Nazwa jednostki 2}}. ; Indicator (prawy górny róg w linii tytułu lub nad stroną, ale pod tytułem) * {{s|Skrót}} - skróty do strony podawane w formie starej lub nagłówkowej, w zależności od wyboru, * {{s|Skrót szablonu}} - skróty szablonu podawane w szablonie oddzielone znakami potoku, wyświetlane w formie starej lub nagłówkowej, w zależności od wyboru.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z {{s|Status}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 9ktlbt1pt3ahc3rptipc44f56l7bvsb Szablon:Opis kategorii/opis/Zobacz też 10 63955 552007 2026-08-16T16:42:48Z Persino 2851 Utworzono nową stronę „<includeonly> * {{s|Opis kategorii}} - szablon z dodatkowymi możliwymi parametrami: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}, * {{s|Opis kategorii 2}} - szablon bez dodatkowych parametrów: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Co…” 552007 wikitext text/x-wiki <includeonly> * {{s|Opis kategorii}} - szablon z dodatkowymi możliwymi parametrami: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}, * {{s|Opis kategorii 2}} - szablon bez dodatkowych parametrów: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}.<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> di34uq9tpue8pxlizu6c3b949p1q04j 552009 552007 2026-08-16T16:44:07Z Persino 2851 552009 wikitext text/x-wiki <includeonly> ; Szablony opisu kategorii, wersja nowa i z niego skonstrułowana jego stara * {{s|Opis kategorii}} - szablon z dodatkowymi możliwymi parametrami: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}, * {{s|Opis kategorii 2}} - szablon bez dodatkowych parametrów: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}.<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> 466nhsvgt6ul388k08ubrjwznt5ey22 552012 552009 2026-08-16T16:53:23Z Persino 2851 552012 wikitext text/x-wiki <includeonly> ; Szablony opisu kategorii, wersja nowa i z niego skonstrułowana jego stara * {{s|Opis kategorii}} - szablon z dodatkowymi możliwymi parametrami: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}, * {{s|Opis kategorii 2}} - szablon bez dodatkowych parametrów: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z: {{s|Opis kategorii}} i {{s|Opis kategorii}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> 9xilkkeq2651deekb2v6k8tw2yjxt5h 552018 552012 2026-08-16T17:10:49Z Persino 2851 552018 wikitext text/x-wiki <includeonly> ; Szablony opisu kategorii, wersja nowa i z niego skonstrułowana jego stara * {{s|Opis kategorii}} - szablon z dodatkowymi możliwymi parametrami: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}, * {{s|Opis kategorii 2}} - szablon bez dodatkowych parametrów: {{Code|bez ramki}}, {{Code|z nagłówkiem}}, {{Code|ze stopką}}, {{Code|bez kolumn}}, {{Code|liczba kolumn}},{{Code|min szerokość kolumn}}, {{Code|min główna szerokość}} i {{Code|bez czcionki}}.<!-- --></includeonly><noinclude><!-- -->{{Dokumentacja|zawartość=Szablon powtarzalny do wsadzania pod sekcję: '''Zobacz też''', do opisu szablonów związanych z: {{s|Opis kategorii}} i {{s|Opis kategorii 2}}.}}<!-- -->{{Kategoria|Szablony pomocnicze potrzebne do dokumentacji szablonów}}<!-- --></noinclude> cf2bsipub3uftcvua5wkygwpo6pmma6 Szablon:NS 10 63956 552117 2026-08-17T09:53:27Z Persino 2851 Przekierowanie do [[Szablon:NAZWASERWISU]] 552117 wikitext text/x-wiki #REDIRECT [[Szablon:NAZWASERWISU]] {{Kategorie | Szablony nazw | Przekierowania wewnętrzne skrótów szablonów }} hah885rb33k0rntreot6by8n6vc82p5