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><</code>” na „<code>&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;|
– 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;|
- 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. ~~~~</nowiki>}}}}
}}
# Na górze sekcji {{lz|s={{DNU/prefix|{{{1}}}}}|c=action=edit§ion=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. ~~~~</nowiki>}}}}
}}
# Na górze sekcji {{lz|s={{DNU/prefix|{{{1}}}}}|c=action=edit§ion=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. ~~~~</nowiki>}}}}
}}
# Na górze sekcji {{lz|s={{DNU/prefix|{{{1}}}}}|c=action=edit§ion=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| 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