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
Wikibooks:Szablony/Ogólne
4
2990
551940
549727
2026-08-16T11:00:44Z
Persino
2851
/* Wyróżnione podręczniki miesiąca */
551940
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Szablony przypisów bibliograficznych i rzeczowych oraz referencji ==
Obecnie MediaWiki umożliwia tworzenie przypisów za pomocą specjalnej składni. Jest to objaśnione na stronie {{lpr2|Przypisy}}. Na Wikibooks przykładem użycia przypisów jest np. artykuł {{lg|Ruby/Moduły}}.
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre start}}
To jest tekst z uwagą{{s|u|uwaga 1}}. A to jest drugi tekst z inną uwagą{{s|u|uwaga 1}}{{s|u|uwaga 2}} do siebie zawierającą{{s|u|uwaga 2}} przypis{{s|r|Ala|Ola}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi|
|uwaga 1{{=}}To jest uwaga z przypisem{{s|r|P1}}
|uwaga 2{{=}}To jest inna{{s|r|P1}} uwaga{{s|u|uwaga 1}} z innym przypisem{{s|r|P2}} i uwagą{{s|u|uwaga 2}} do siebie
}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy|
|P1{{=}}To jest przypis do uwagi
|P2{{=}}To jest inny przypis do innej uwagi
|Ala{{=}}Ala
|Ola{{=}}Ola
}}{{Pre koniec}}
| _1 = To jest tekst z uwagą{{u|uwaga 1}}. A to jest drugi tekst z inną uwagą{{u|uwaga 1}}{{u|uwaga 2}} do siebie zawierającą{{u|uwaga 2}} przypis{{r|Ala|Ola}}.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi|
|uwaga 1=To jest uwaga z przypisem{{r|P1}}
|uwaga 2=To jest inna{{r|P1}} uwaga{{u|uwaga 1}} z innym przypisem{{r|P2}} i uwagą{{u|uwaga 2}} do siebie
}}}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy|
|P1=To jest przypis do uwagi
|P2=To jest inny przypis do innej uwagi
|Ala=Ala
|Ola=Ola
}}}}
| 2 = {{Tt|{{s|RNota}}}} (jego skrót: {{Tt|{{s|RN}}}}), dla {{Tt|{{s|UNota}}}} (jego skrót: {{Tt|{{s|UN}}}}).
{{Hr}}
{{Pre start}}
To jest tekst z uwagą{{s|UN|To jest uwaga 1}}. A to jest drugi tekst z inną uwagą{{s|UN|To jest uwaga 2}}{{s|RN|To jest przypis 1}} do siebie zawierającą{{s|UN|To jest uwaga 3}} przypis{{s|RN|To jest przypis 2}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}{{Pre koniec}}
| _2 = To jest tekst z uwagą{{UN|To jest uwaga 1}}. A to jest drugi tekst z inną uwagą{{UN|To jest uwaga 2}}{{RN|To jest przypis 1}} do siebie zawierającą{{UN|To jest uwaga 3}} przypis{{RN|To jest przypis 2}}.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi}}}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}}}
| 3 = {{Pre start}}
To jest jakiś przykładowy tekst nie należy na niego zwracać uwagę{{s|r|Nazwa przypisu}}, chyba że akurat gdzieś pojawi się coś przypisowatego{{s|r|Wydawca: Jakiś tytuł}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy-lista|
{{s|Ref|Nazwa przypisu|W przypisie może być cokolwiek}}
{{s|Ref|Wydawca: Jakiś tytuł|Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''}}
}}
{{Pre koniec}}
| _3 = To jest jakiś przykładowy tekst nie należy na niego zwracać uwagę{{r|Nazwa przypisu}}, chyba że akurat gdzieś pojawi się coś przypisowatego{{r|Wydawca: Jakiś tytuł}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy-lista|
{{Ref|Nazwa przypisu|W przypisie może być cokolwiek}}
{{Ref|Wydawca: Jakiś tytuł|Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''}}
}}
}}
| 4 = {{Pre start}}
Oto jest tekst przed referencją, by zademonstrować działanie tego szablonu.{{s|Ref|ref{{=}}{{s|Przypiswiki|Oto jest tekst referencji jeden, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto jest tekst po referencji, by zademonstrować działanie tego szablonu.{{s|Ref|ref{{=}}{{s|Przypiswiki|Oto jest tekst referencji dwa, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto dalszy tekst, by zademonstrować działanie tego szablonu.
{{Span|<nowiki>==</nowiki>|styl=color:green}} {{Strong|Przypisy}} {{Span|<nowiki>==</nowiki>|styl=color:green}}
{{s|Przypisy}}
{{Pre koniec}}
| _4 = Oto jest tekst przed referencją, by zademonstrować działanie tego szablonu.{{Ref|ref={{Przypiswiki|Oto jest tekst referencji jeden, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto jest tekst po referencji, by zademonstrować działanie tego szablonu.{{Ref|ref={{Przypiswiki|Oto jest tekst referencji dwa, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto dalszy tekst, by zademonstrować działanie tego szablonu.
{{OpakujKategorieZeSortowaniem|
==Przypisy==
{{Przypisy}}
}}
| 5 = {{Pre|
Oto jest tekst{{s|r|nazwa referencji 1}}{{s|r|nazwa referencji 2}}{{s|u|nazwa referencji 3}}{{s|u|nazwa referencji 4}}{{s|u|nazwa referencji 5}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy|
{{s|Ref|nazwa referencji 1|Treść referencji 1}}
{{s|Ref|nazwa referencji 2|Treść referencji 2}}
}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi|
{{s|Ref|nazwa referencji 3|Treść referencji 3}}
{{s|Ref|nazwa referencji 4|Treść referencji 4}}
{{s|Ref|nazwa referencji 5|Treść referencji 5}}
}}}}
| _5 = Oto jest tekst{{r|nazwa referencji 1}}{{r|nazwa referencji 2}}{{u|nazwa referencji 3}}{{u|nazwa referencji 4}}{{u|nazwa referencji 5}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy|
{{Ref|nazwa referencji 1|Treść referencji 1}}
{{Ref|nazwa referencji 2|Treść referencji 2}}
}}}}
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi|
{{Ref|nazwa referencji 3|Treść referencji 3}}
{{Ref|nazwa referencji 4|Treść referencji 4}}
{{Ref|nazwa referencji 5|Treść referencji 5}}
}}}}
| 6 = {{Pre start}}
Ala ma kota{{s|odn|Kowalski|2007}}. Pchnąć w tę łódź jeża{{s|odn|Kowalski|2007|s{{=}}42}}{{s|odn|Malinowski|Nowak|2005|s{{=}}138}} lub ośm skrzyń fig{{s|odn|Malinowski|Nowak|Kowalski|Smith|1998|s{{=}}138}}. Zażółć gęślą jaźń{{s|odn|Kowalski|2007|s{{=}}58, 97}}{{s|odn|Wikipedyści|2012}}. Sen to zdrowie{{s|odn|Malinowski|Nowak|2005|loc{{=}}Rozdział 13. Porady medyczne}}{{s|odn|Iksiński|2012|s{{=}}12}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Pre koniec}}
| _6 = Ala ma kota{{odn|Kowalski|2007}}. Pchnąć w tę łódź jeża{{odn|Kowalski|2007|s=42}}{{odn|Malinowski|Nowak|2005|s=138}} lub ośm skrzyń fig{{odn|Malinowski|Nowak|Kowalski|Smith|1998|=138}}. Zażółć gęślą jaźń{{odn|Kowalski|2007|s=58, 97}}{{odn|Wikipedyści|2012}}. Sen to zdrowie{{odn|Malinowski|Nowak|2005|loc=Rozdział 13. Porady medyczne}}{{odn|Iksiński|2012|s=12}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
| 7 = {{Pre start}}
Tekst artykułu{{s|r|P}}, w którym umieszczamy uwagę{{s|refn|grupa{{=}}uwaga|Tekst uwagi{{Mniejszy}}ref name{{=}}"P"{{Większy}}Przypis wewnątrz uwagi.{{Mniejszy}}/ref{{Większy}}.}} z przypisem wewnątrz niej.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Pre koniec}}
| _7 =
Tekst artykułu{{r|P}}, w którym umieszczamy uwagę{{refn|grupa=uwaga|Tekst uwagi<ref name="P">Przypis wewnątrz uwagi.</ref>.}} z przypisem wewnątrz niej.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi}}
}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
| 8 = {{Pre start}}
Ana w świecie początku epoki turystyki masowej{{s|Odn|Березовая Л. Г.|2014|s{{=}}463}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Bibliografia}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
<nowiki>*</nowiki> {{s|Source|Q42256584|ref{{=}}Березовая Л. Г.}}
{{Pre koniec}}
| _8 = Ana w świecie początku epoki turystyki masowej{{Odn|Березовая Л. Г.|2014|s=463}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
== Bibliografia ==
* {{Source|Q42256584|ref=Березовая Л. Г.}}
}}
== Prawa autorskie (licencja) ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|
<nowiki>== Licencja ==</nowiki>
{{s|Licencja
| Autor {{=}} <nowiki>[[Wikipedysta:Użytkownik|Imię i nazwisko]]</nowiki>
| Ukończone szkoły {{=}} Absolwent Szkoły Wyższej w Miejscowości
| Email {{=}} imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
}}}}
| _1 = {{OpakujKategorieZeSortowaniem|1={{DivLinia}}
== Licencja ==
{{Licencja
| Autor = [[Wikipedysta:Użytkownik|Imię i nazwisko]]
| Ukończone szkoły = Absolwent Szkoły Wyższej w Miejscowości
| Email = imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
}}}}
| 2 = {{Pre|
<nowiki>== Licencja ==</nowiki>
{{s|Licencja
| Autor {{=}} <nowiki>[[Wikipedysta:Użytkownik|Imię i nazwisko]]</nowiki>
| Ukończone szkoły {{=}} Absolwent Szkoły Wyższej w Miejscowości
| Email {{=}} imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
| Dotyczy {{=}} Tej strony i jego podstron.
| Licencjonowanie {{=}} Książka jest udzielana na licencji: GNU GPL Licence, a więc można kopiować i modyfikować dowolnie, jeżeli w treści zmodyfikowanej został wskazany autor lub autorzy wersji przed edycją.
| Umowa prawna {{=}} Pomiędzy {{s|NAZWASERWISU|Wikiboosem|link{{=}}tak}}, a czytającym lub ten modyfikującym tę książkę (strona główna) i jego podartykuły.
| Konsekwencje {{=}} Autor dołożył wszelkich , by informacje zawarte w podręczniku były poprawne, ale nie bierze na siebie odpowiedzialności karnej za sposób wykorzystania wiadomości zawartej w książce, a w przypadku wystąpieniu szkód lub naruszenia praw patentowych, nawet gdy {{S|NAZWASERWISU|link{{=}}tak}} lub autor książki zostanie powiadomiony, czytający nie może ubiegać się o odszkodowanie, a więc nie może być udzielona żadna rękojmia, czy też gwarancja.
}}
}}
| _2 = {{OpakujKategorieZeSortowaniem|{{DivLinia}}
== Licencja ==
{{Licencja
| Autor = [[Wikipedysta:Użytkownik|Imię i nazwisko]]
| Ukończone szkoły = Absolwent Szkoły Wyższej w Miejscowości
| Email = imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
| Dotyczy = Tej strony i jego podstron.
| Licencjonowanie = Książka jest udzielana na licencji: GNU GPL Licence, a więc można kopiować i modyfikować dowolnie, jeżeli w treści zmodyfikowanej został wskazany autor lub autorzy wersji przed edycją.
| Umowa prawna = Pomiędzy {{NAZWASERWISU|Wikiboosem|link=tak}}, a czytającym lub ten modyfikującym tę książkę (strona główna) i jego podartykuły.
| Konsekwencje = Autor dołożył wszelkich starań, by informacje zawarte w podręczniku były poprawne, ale nie bierze na siebie odpowiedzialności karnej za sposób wykorzystania wiadomości zawartej w książce, a w przypadku wystąpieniu szkód lub naruszenia praw patentowych, nawet gdy {{NAZWASERWISU|link=tak}} lub autor książki zostanie powiadomiony, czytający nie może ubiegać się o odszkodowanie, a więc nie może być udzielona żadna rękojmia, czy też gwarancja.
}}}}
}}
== Szablony cytowań tematycznych ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Cytuj grę komputerową | tytuł {{=}} <nowiki>[[w:Mass Effect: Andromeda|Mass Effect: Andromeda]]</nowiki> | producent {{=}} <nowiki>[[BioWare]]</nowiki>|miejsce{{=}}<nowiki>[[w:Warszawa|Warszawa]]</nowiki> | wydawca {{=}} <nowiki>[[w:Electronic Arts|Electronic Arts Polska]]</nowiki> | data {{=}} 23.03.2017 | platforma {{=}} <nowiki>[[w:PlayStation 4|PlayStation 4]]</nowiki> | dokument {{=}} Leksykon: Kettowie – Archont | język {{=}} pl | cytat {{=}} Osobnik zwany archontem jest dowódcą sił kettów w gromadzie Helejosa. Choć jest rzadko widywany, według doniesień jego wizytom w obiektach należących do kettów towarzyszą pokazy szacunku połączonego ze strachem, egzekucje dysydentów i prezentacje cennej technologii Porzuconych.}}}}
| _1 = {{Cytuj grę komputerową | tytuł = [[w:Mass Effect: Andromeda|Mass Effect: Andromeda]] | producent = [[w:BioWare|BioWare]]| miejsce = [[w:Warszawa|Warszawa]] | wydawca = [[w:Electronic Arts|Electronic Arts Polska]] | data = 23.03.2017 | platforma = [[w:PlayStation 4|PlayStation 4]] | dokument = Leksykon: Kettowie – Archont|język=pl|cytat=Osobnik zwany archontem jest dowódcą sił kettów w gromadzie Helejosa. Choć jest rzadko widywany, według doniesień jego wizytom w obiektach należących do kettów towarzyszą pokazy szacunku połączonego ze strachem, egzekucje dysydentów i prezentacje cennej technologii Porzuconych.}}
| 2 = {{Tt|{{s|Cytuj książkę |autor {{=}} Anil Kumar Maini | tytuł {{=}} Digital Electronics: Principles, Devices and Applications | url {{=}} <nowiki>https://books.google.com/?id=NQSpNAEACAAJ&pg=PA28</nowiki> | rok {{=}} 2007 | wydawca {{=}} John Wiley and Sons | isbn {{=}} 978-0-470-03214-5 | strony {{=}} 28 | cytat {{=}} In addition, it defines codes for 33 nonprinting, mostly obsolete control characters that affect how the text is processed. | język {{=}} en }}}}
| _2 = {{Cytuj książkę | autor = Anil Kumar Maini | tytuł = Digital Electronics: Principles, Devices and Applications | url = https://books.google.com/?id=NQSpNAEACAAJ&pg=PA28 | rok = 2007 | wydawca = John Wiley and Sons | isbn = 978-0-470-03214-5 | strony = 28 | cytat = In addition, it defines codes for 33 nonprinting, mostly obsolete control characters that affect how the text is processed. | język = en }}
| 3 = {{Tt|{{s|Cytuj odcinek | tytuł {{=}} BBC-TV Presents: The 2008 World Snooker Championship Live at The Crucible | odcinek link {{=}} w:BBC Snooker World Championship coverage (2008) | serial {{=}} Wide World of Snooker | serial link {{=}} w:Wide World of Snooker (program telewizyjny) | autorzy {{=}} Prezenterzy: <nowiki>[[w:Dennis Taylor|Dennis Taylor]] </nowiki> and <nowiki>[[w:Clive Everton|Clive Everton]]</nowiki> | stacja {{=}} <nowiki>[[w:British Broadcasting Corporation|BBC]]</nowiki> | stacja2 {{=}} <nowiki>[[w:BBC Two|BBC Two]]</nowiki> | miasto {{=}} <nowiki>[[w:Sheffield|Sheffield]]</nowiki>, <nowiki>[[w:Anglia|Anglia]]</nowiki> | emisja {{=}} 27 kwietnia 2004 | minuta {{=}} 2:34 | transkrypcja url {{=}} <nowiki>http://bbc.com/transkrypcjaaudycji.html</nowiki> | data dostępu {{=}} 23 czerwca 2008 }}}}
| _3 = {{Cytuj odcinek | tytuł = BBC-TV Presents: The 2008 World Snooker Championship Live at The Crucible | odcinek link = w:BBC Snooker World Championship coverage (2008) | serial = Wide World of Snooker | serial link = w:Wide World of Snooker (program telewizyjny) | autorzy = Prezenterzy: [[w:Dennis Taylor|Dennis Taylor]] and [[w:Clive Everton|Clive Everton]] | stacja = [[w:British Broadcasting Corporation|BBC]] | stacja2 = [[w:BBC Two|BBC Two]] | miasto = [[w:Sheffield|Sheffield]], [[w:Anglia|Anglia]] |emisja = 27 kwietnia 2004 | minuta = 2:34 | transkrypcja url = http://bbc.com/transkrypcjaaudycji.html | data dostępu = 23 czerwca 2008 }}
| 4 = {{Tt|{{s|Cytuj pismo | tytuł {{=}} Binary Computer Codes and ASCII | autor {{=}} Ed Bukstein | czasopismo {{=}} Electronics World | rok {{=}} 1964 | miesiąc {{=}} 07 | wolumin {{=}} 72 | wydawca {{=}} Poptronix Inc. | strony {{=}} 28–29 | język {{=}} en | url {{=}} <nowiki>http://www.swtpc.com/mholley/ElectronicsWorld/Jul1964/EW_Jul1964.htm</nowiki>| data dostępu {{=}} 2016-05-22 }}}}
| _4 = {{Cytuj pismo | tytuł = Binary Computer Codes and ASCII | autor = Ed Bukstein | czasopismo = Electronics World | rok = 1964 | miesiąc = 07 | wolumin = 72 | wydawca = Poptronix Inc. | strony = 28–29 | język = en | url = http://www.swtpc.com/mholley/ElectronicsWorld/Jul1964/EW_Jul1964.htm | data dostępu = 2016-05-22 }}
| 5 = {{Tt|{{s|Cytuj stronę | url {{=}} <nowiki>http://sjp.pwn.pl/poradnia/haslo/b-alternatywa-b;2079.html</nowiki> | tytuł {{=}} alternatywa | autor {{=}} [[w:Mirosław Bańko|Mirosław Bańko]] | praca {{=}} Poradnia językowa | opublikowany {{=}} PWN | data {{=}} 2002 | data dostępu {{=}} 2016-10-14 | odn {{=}} {{s|odn/id|Bańko|2002}} }}}}
| _5 = {{Cytuj stronę | url = http://sjp.pwn.pl/poradnia/haslo/b-alternatywa-b;2079.html | tytuł = alternatywa | autor = [[w:Mirosław Bańko|Mirosław Bańko]] | praca = Poradnia językowa | opublikowany = PWN | data = 2002 | data dostępu = 2016-10-14 | odn = {{odn/id|Bańko|2002}} }}
| 6 = {{Tt|{{s|Cytuj | autor {{=}} Benoit Viollet, Fabrizio Andreelli, Sebastian B. Jørgensen, Christophe Perrin, Alain Geloen, Daisy Flamez, James Mu, Claudia Lenzner, Olivier Baud, Myriam Bennoun, Emmanuel Gomas, Gaël Nicolas, Jørgen F.P. Wojtaszewski, Axel Kahn, David Carling, Frans C. Schuit, Morris J. Birnbaum, Erik A. Richter, Rémy Burcelin, Sophie Vaulont | tytuł {{=}} The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity | data {{=}} 2003 | czasopismo {{=}} The Journal of Clinical Investigation | doi {{=}} 10.1172/JCI16567 | wolumin {{=}} 111 | numer {{=}} 1 | pmid {{=}} 12511592 | pmc {{=}} 151837| s {{=}} 91-98 }}}}
| _6 = {{Cytuj | autor = Benoit Viollet, Fabrizio Andreelli, Sebastian B. Jørgensen, Christophe Perrin, Alain Geloen, Daisy Flamez, James Mu, Claudia Lenzner, Olivier Baud, Myriam Bennoun, Emmanuel Gomas, Gaël Nicolas, Jørgen F.P. Wojtaszewski, Axel Kahn, David Carling, Frans C. Schuit, Morris J. Birnbaum, Erik A. Richter, Rémy Burcelin, Sophie Vaulont | tytuł = The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity | data = 2003 | czasopismo = The Journal of Clinical Investigation | doi = 10.1172/JCI16567 | wolumin = 111 | numer = 1 | pmid = 12511592 | pmc = 151837 | s = 91-98 }}
}}
== Szablony cytatów ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Cytat|Wpłynąłem na suchego przestwór oceanu;{{s|Br}}
Wóz nurza się w zieloność i jak łódka brodzi:{{s|Br}}
Śród fali łąk szumiących, śród kwiatów powodzi,{{s|Br}}
Omijam koralowe ostrowy burzanu.}}}}
| _1 = {{Cytat|Wpłynąłem na suchego przestwór oceanu;{{Br}}
Wóz nurza się w zieloność i jak łódka brodzi:{{Br}}
Śród fali łąk szumiących, śród kwiatów powodzi,{{Br}}
Omijam koralowe ostrowy burzanu.}}
| 2 = {{Pre|{{s|Cytat box
|cytat {{=}} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|źródło {{=}} <nowiki>[[w:Cyceron|Cyceron]]</nowiki>, ''De finibus bonorum et malorum''
|width {{=}} 40%
|align {{=}} right
}}}}
| _2 = {{Cytat box
|cytat = Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|źródło = [[w:Cyceron|Cyceron]], ''De finibus bonorum et malorum''
|width = 40%
|align = right
}}
| 3 = {{Pre|{{s|CytatD
|Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|<nowiki>[[w:Cyceron|Cyceron]]</nowiki>|De finibus bonorum et malorum
}}}}
| _3 = {{CytatD
|Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|[[w:Cyceron|Cyceron]]|De finibus bonorum et malorum
}}
| 4 = {{Pre|{{s|CytatDłuższy|Nie można się oprzeć wrażeniu, że niektóre czynniki chciałyby widzieć Ligę przede wszystkim jako instrument, zwrócony przeciw t. zw. państwom totalnym. Uderzające jest, że te same czynniki chcą jakoby stotalizować życie międzynarodowe drogą tej samej Ligi Narodów. Wydaje mi się, że ta jaskrawa sprzeczność nie wymaga dalszych komentarzy.}}}}
| _4 = {{CytatDłuższy|
Nie można się oprzeć wrażeniu, że niektóre czynniki chciałyby widzieć Ligę przede wszystkim jako instrument, zwrócony przeciw t. zw. państwom totalnym. Uderzające jest, że te same czynniki chcą jakoby stotalizować życie międzynarodowe drogą tej samej Ligi Narodów. Wydaje mi się, że ta jaskrawa sprzeczność nie wymaga dalszych komentarzy.}}
}}
== Szablony tematyczne tekstowe ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Chem|C|n|H|2n + 2}}}} | _1 = {{Chem|C|n|H|2n + 2}}
| 2 = {{Tt|{{s|Chem2|H2C\dCH\sCH(CH3)2 + HCl → CH3\sCH2\sCCl(CH3)2 + CH3\sCHCl\sCH(CH3)2}}}} | _2 = {{Chem2|H2C\dCH\sCH(CH3)2 + HCl → CH3\sCH2\sCCl(CH3)2 + CH3\sCHCl\sCH(CH3)2}}
}}
== Szablony pudełkowe komunikatów informujących (mboksy) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Ambox|typ{{=}}wiadomość|tekst{{=}}typ{{=}}{{s|Un|wiadomość}} – informacje o artykule, jak {{s|s|Aktualne}} i {{s|s|W edycji}}.}}}}
| _1 = {{Ambox|typ=wiadomość|tekst=typ={{Un|wiadomość}} – informacje o artykule, jak {{S|Aktualne}} i {{S|W edycji}}.}}
| 2 = {{Tt|{{s|AmboxProsty|typ{{=}}pułapka|tekst{{=}}Użycie tej wartości nie jest dozwolone!}}}}
| _2 = {{AmboxProsty|typ=pułapka|tekst=Użycie tej wartości nie jest dozwolone!}}
| 3 = {{Tt|{{s|Tmbox|typ{{=}}poważny|tekst{{=}}<nowiki>'''</nowiki>typ{{=}}poważny<nowiki>'''</nowiki>{{s|Br}}Poważne problemy z artykułem/szablonem, takie, jak {{s|s|ek}}. Powinien być używany do informowania o błędnym wywołaniu jakiegoś szablonu wykorzystującego tmbox.}}}}
| _3 = {{Tmbox|typ=poważny|tekst='''typ=poważny'''{{Br}}Poważne problemy z artykułem/szablonem, takie, jak {{s|ek}}. Powinien być używany do informowania o błędnym wywołaniu jakiegoś szablonu wykorzystującego tmbox.}}
| 4 = {{Tt|{{s|Fmbox|typ{{=}}ostrzeżenie|tekst{{=}}typ{{=}}{{s|Un|ostrzeżenie}} – Systemowe ostrzeżenie.}}}}
| _4 = {{Fmbox|typ=ostrzeżenie|tekst=typ={{Un|ostrzeżenie}} – Systemowe ostrzeżenie.}}
| 5 = {{Tt|{{s|Ombox|typ{{=}}integruj|tekst{{=}}<nowiki>'''</nowiki>typ{{=}}integruj<nowiki>'''</nowiki>{{s|Br}}Artykuł musi zostać zintegrowany z innym. Wykorzystywany także do informacji o tłumaczeniu, źródle i wymaganym zintegrowaniu historii edycji.}}}}
| _5 = {{Ombox|typ=integruj|tekst='''typ=integruj'''{{Br}}Artykuł musi zostać zintegrowany z innym. Wykorzystywany także do informacji o tłumaczeniu, źródle i wymaganym zintegrowaniu historii edycji.}}
| 6 = {{Tt|{{s|Cmbox|typ{{=}}wiadomość|tekst{{=}}{{s|Parametr|typ|{{s|Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}}}
| _6 = {{Cmbox|typ=wiadomość|tekst={{Parametr|typ|{{Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}
| 7 = {{Tt|{{s|Imbox|typ{{=}}wiadomość|tekst{{=}}{{s|Parametr|typ|{{s|Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}}}
| _7 = {{Imbox|typ=wiadomość|tekst={{Parametr|typ|{{Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}
| 8 = {{Tt|{{s|Mbox|typ{{=}}poważny|tekst{{=}}typ{{=}}{{s|Un|poważny}} – Poważne problemy, jak {{S|s|ek}} i {{s|s|NPA}}.}}}}
| _8 = {{Mbox|typ=poważny|tekst=typ={{Un|poważny}} – Poważne problemy, jak {{S|ek}} i {{S|NPA}}.}}
| 9 = {{Tt|{{s|Dmbox|grafika{{=}}{{s|ikona|info|25}}|tekst{{=}}Nie mylić z {{s|s|tmbox}}}}}}
| _9 = {{Dmbox|grafika={{ikona|info|25}}|tekst=Nie mylić z {{s|tmbox}}}}
| 10 = {{Tt|{{s|Mbox-strona|typ{{=}}notatki|tekst{{=}}Ta książka wymaga znajomości: {{s|lg|Struktury danych}}.}}}}
| _10 = {{Mbox-strona|typ=notatki|tekst=Ta książka wymaga znajomości: {{lg|Struktury danych}}.}}
}}
== Pudełka zbierające wiele elementów w jednej ramce ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Ramka|
{{s|Plik|plik{{=}}Water-charge-surface.png|rozmiar{{=}}100px|pozycja{{=}}lewo}}
{{s|Plik|plik{{=}}Water molecule 3D.svg|rozmiar{{=}}100px|pozycja{{=}}prawo}}
{{s|Plik|plik{{=}}Water molecule dimensions.png|rozmiar{{=}}200px}}
| Kolejno: rozkład ładunku elektrycznego dookoła cząsteczki wody, widok 3D, wymiary i kąty w cząsteczce wody.
| 250px
| right
}}}}
| _1 = {{Ramka|
{{Plik|plik=Water-charge-surface.png|rozmiar=100px|pozycja=lewo}}
{{Plik|plik=Water molecule 3D.svg|rozmiar=100px|pozycja=prawo}}
{{Plik|plik=Water molecule dimensions.png|rozmiar=200px}}
| Kolejno: rozkład ładunku elektrycznego dookoła cząsteczki wody, widok 3D, wymiary i kąty w cząsteczce wody.
| 250px
| right
}}
}}
== Inne pudełka komórkowe (tabelki) i ramkowe ({{Tag|div}}) - niesystemowe ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe|kolor1{{=}}#C0C0C0|kolor2{{=}}#FFFBF4|kolor3{{=}}#00FFFF|kolor4{{=}}#000080|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
|_1 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe|kolor1=#C0C0C0|kolor2=#FFFBF4|kolor3=#00FFFF|kolor4=#000080|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 2 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 1|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _2 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 1|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 3 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 2|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _3 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 2|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 4 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 3|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _4 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 3|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 5 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 4|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _5 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 4|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 6 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 5|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _6 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 5|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 7 = {{Tt|{{s|Pudełko ramkowe|kolor1{{=}}#C0C0C0|kolor2{{=}}#FFFBF4|kolor3{{=}}#00FFFF|kolor4{{=}}#000080|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _7 = {{Pudełko ramkowe|kolor1=#C0C0C0|kolor2=#FFFBF4|kolor3=#00FFFF|kolor4=#000080|grafika-bez-div=|styl=width: 100%;box-sizing:border-box;|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 8 = {{Tt|{{s|Pudełko ramkowe 1|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _8 = {{Pudełko ramkowe 1|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 9 = {{Tt|{{s|Pudełko ramkowe 2|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box||grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _9 = {{Pudełko ramkowe 2|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 10 = {{Tt|{{s|Pudełko ramkowe 3|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box||grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _10 = {{Pudełko ramkowe 3|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 11 = {{Tt|{{s|Pudełko ramkowe 4|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _11 = {{Pudełko ramkowe 4|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 12 = {{Tt|{{s|Pudełko ramkowe 5|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _12 = {{Pudełko ramkowe 5|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
== Bloki komórkowe (tabelki) i ramkowe ({{Tag|div}}) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}}
{{s|Blok tabelowy|temat{{=}}1|tytuł{{=}}Kolor1}}
<nowiki>''</nowiki>To jest przykładowy tekst...<nowiki>''</nowiki>
{{s|Blok tabelowy/Zamknij}}
}}}}
| _1 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 =
{{Blok tabelowy|temat=1|tytuł=Kolor1}}
''To jest przykładowy tekst...''
{{Blok tabelowy/Zamknij}}
}}
| 2 = {{Pre|{{s|Blok ramkowy|temat{{=}}1|tytuł{{=}}Kolor1|szerokość{{=}}auto|margines{{=}}0 5px}}
<nowiki>''</nowiki>To jest przykładowy tekst...<nowiki>''</nowiki>
{{s|Blok ramkowy/Zamknij}}}}
| _2 = {{Blok ramkowy|temat=1|tytuł=Kolor1|szerokość=auto|margines=0 5px}}
''To jest przykładowy tekst...''
{{Blok ramkowy/Zamknij}}
}}
== Szablony sekcji (formy komórkowe i ramkowe) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|liczba wierszy{{=}}0|liczba kolumn{{=}}1
| nagłówek 1 {{=}} {{s|Sekcja komórkowa
| tytuł {{=}} {{s|Span|styl{{=}}color:#1443C7|Warto zajrzeć}}
| grafika {{=}} HSCategory.svg
| treść {{=}} {{s|Strona główna/Warto zajrzeć}}
| łącze {{=}}
| id {{=}} Warto
}}}}}}
| _1 = {{Tabela|liczba wierszy=0|liczba kolumn=1
| nagłówek 1 = {{Sekcja komórkowa
| tytuł = {{Span|styl=color:#1443C7|Warto zajrzeć}}
| grafika = HSCategory.svg
| treść = {{Strona główna/Warto zajrzeć}}
| łącze =
| id = Warto
}}
}}
| 2 = {{Pre|{{s|Sekcja ramkowa
| tytuł {{=}} {{s|Span|styl{{=}}color:#1443C7|Warto zajrzeć}}
| grafika {{=}} HSCategory.svg
| treść {{=}} {{s|Strona główna/Warto zajrzeć}}
| łącze {{=}}
| id {{=}} Warto
}}}}
| _2 = {{Sekcja ramkowa
| tytuł = {{Span|styl=color:#1443C7|Warto zajrzeć}}
| grafika = HSCategory.svg
| treść = {{Strona główna/Warto zajrzeć}}
| łącze =
| id = Warto
}}
}}
== Ramki informujące ==
Przedstawia wszystkie pudełka informacyjne, do których wstawia się tekst ich zawartości.
=== Szablony do zastosowań ogólnych ===
{{EfektKodów
| 1 = {{Tt|{{s|Uwaga|Tekst ostrzeżenia}}}} | _1 = {{Uwaga|Tekst ostrzeżenia}}
| 2 = {{Tt|{{s|Porada|Tekst porady}}}} | _2 = {{Porada|Tekst porady}}
| 3 = {{Tt|{{s|Infobox|Tekst informacji}}}} | _3 = {{Infobox|Tekst informacji}}
| 4 = {{Tt|{{s|Info|Tekst informacji}}}} | _4 = {{Info|Tekst informacji}}
| 5 = {{Tt|{{s|Zapamiętaj|2=Co należy zapamiętać}}}} | _5 = {{Zapamiętaj|Co należy zapamiętać}}
| 6 = {{Tt|{{s|Definicja|Tekst definicji}}}} | _6 = {{Definicja|Tekst definicji}}
| 7 = {{Tt|{{s|Definicja2|Tekst definicji}}}} | _7 = {{Definicja2|Tekst definicji}}
| 8 = {{Tt|{{s|Definicja3|Tekst definicji}}}} | _8 = {{Definicja3|Tekst definicji}}
| 9 = {{Tt|{{s|Ćwiczenie|Tekst ćwiczenia}}}} | _9 = {{Ćwiczenie|Tekst ćwiczenia}}
| 10 = {{Tt|{{s|InfoRamka|Tekst ramki}}}} | _10 = {{InfoRamka|Tekst ramki}}
| 11 = {{Tt|{{s|InfoReguła|Tekst reguły}}}} | _11 =
{{InfoReguła|Tekst reguły}}
| 12 = {{Tt|{{s|Ważne informacje|symbol{{=}}Klepsydra.svg|Nagłówek informacji|Tekst ważnej informacji}}}}| _12 = {{Ważne informacje|symbol=Klepsydra.svg|Nagłówek informacji|Tekst ważnej informacji}}
| 13 = {{Tt|{{s|RightBox|Wyróżniony tekst z prawej strony{{s|Br}}Szerokość zależna od zawartości}}}} | _13 = {{RightBox|Wyróżniony tekst z prawej strony{{Br}}Szerokość zależna od zawartości}}
| 14 = {{Tt|{{s|BlueBox|Wyróżniony tekst z prawej strony{{s|Br}}Szerokość zależna od zawartości}}}} | _14 = {{BlueBox|Wyróżniony tekst z prawej strony{{Br}}Szerokość zależna od zawartości}}
}}
Uwaga: Jeżeli w jednym z parametrów pojawi się znak równości, zastępujemy go {{lpg|Odwołania znakowe SGML|encją}} {{Tt|&#64;}}, czyli: {{Tt|{{s|Porada|argument tekstowy &#64; szablonu}}}}, lub zastosować go przez szablon {{s|{{=}}}}, czyli: {{Tt|{{s|Porada|argument tekstowy {{s|{{=}}}} szablonu}}}}, albo zmieniamy treść, wg wzoru: zamiast {{Tt|{{s|Porada|argument}}}} piszemy {{Tt|{{s|Porada|1{{=}}argument}}}}.
=== Ramki powiadające ===
{{EfektKodów
| 1 = {{Tt|{{s|W skrócie|to bełkot}}}}
| _1 = {{W skrócie|to bełkot}}
| 2 = {{Tt|{{s|W skrócie|po pierwsze|po drugie|i po trzecie}}}}
| _2 = {{W skrócie|po pierwsze|po drugie|i po trzecie}}
}}
=== Szablony do zastosowań tworzenia ramek w oparciu o szablony uniwersalne ===
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Uniwersalny szablon językowy
| kolor_tła {{=}} #f2fff2
| kolor_ramki {{=}} blue
| flaga {{=}} Flag of Poland.svg{{!}}border
| podpis_flagi {{=}} Język polski
| ikonka {{=}} Nuvola apps edu languages.svg
| podpis_ikonki {{=}} Dialog
| nazwa_szablonu {{=}} Dialog
| tytuł {{=}} Powitanie
| treść {{=}} <nowiki>''Cześć''</nowiki> – Hello
}}}}
| _1 = {{Uniwersalny szablon językowy
| kolor_tła = #f2fff2
| kolor_ramki = blue
| flaga = Flag of Poland.svg{{!}}border
| podpis_flagi = Język polski
| ikonka = Nuvola apps edu languages.svg
| podpis_ikonki = Dialog
| nazwa_szablonu = Dialog
| tytuł = Powitanie
| treść = ''Cześć'' – Hello
}}
}}
== Szablony do usuwania lub naprawiania albo diagnoz stron ==
Przedstawia szablony potrzebne do natychmiastowego usuwania stron oraz do naprawy lub ich usuwania.
=== Szablony do natychmiastowego usuwania stron lub do diagnozowania błędów ===
Szablony, które służą do usuwania stron, gdy ta strona będzie niepotrzebna lub ona narusza zasady polskiego {{NAZWASERWISU|po=a|link=tak}}.
==== Szablony do natychmiastowego usuwania artykułów ====
{{EfektKodów
| 1 = {{Tt|{{s|ek|powód}}}} i jego przekierowania: {{Tt|{{s|EK|powód}}}}{{•}} {{Tt|{{s|Delete|powód}}}}{{•}} {{Tt|{{s|Screenshot|powód}}}} (do zastosowań do rysunków)
| _1 = {{OpakujKategorieZeSortowaniem|{{ek|powód}}}}
| 2 = {{Tt|{{s|ek2|powód}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{ek2|powód}}}}
| 3 = {{Tt|{{s|Admin usuń}}}} - wynik w postaci tekstowej po działaniu szablonem {{Tt|{{s|Nowiki}}}}
| _3= {{Nowiki|{{Admin usuń}}}}
}}
==== Diagnozowanie błędów ====
{{EfektKodów
| 1 = {{Tt|{{s|#iferror:{{s|Błąd|Foo}} | {{s|Tak}} | {{s|Nie}} }}}}
|_1 = {{#iferror:{{Błąd|Foo}} | {{Tak}} | {{Nie}} }}
}}
=== Szablony potwierdzeń, oznaczające zgodę na tak lub nie, na jakieś operacje ===
{{EfektKodów
| 1 = {{Tt|{{s|Tak}}}} | _1 = {{Tak}}
| 2 = {{Tt|{{s|Nie}}}} | _2 = {{Nie}}
| 3 = {{Tt|{{s|Za}}}} | _3 = {{Za}}
| 4 = {{Tt|{{s|Przeciw}}}} | _4 = {{Przeciw}}
| 5 = {{Tt|{{s|Usunąć}}}} | _5 = {{Usunąć}}
| 6 = {{Tt|{{s|Załatwione}}}} | _6 = {{Załatwione}}
| 7 = {{Tt|{{s|Zostawić}}}} | _7 = {{Zostawić}}
| 8 = {{Tt|{{s|Zrobione}}}} i jego przekierowanie {{Tt|{{s|Done}}}} | _8 = {{Zrobione}}{{•}} {{Done}}
| 9 = {{Tt|{{s|Niezrobione}}}} | _9 = {{Niezrobione}}
| 10 = {{Tt|{{s|Niezałatwione}}}} i jego przekierowanie {{Tt|{{s|Brak}}}} | _10 = {{Niezałatwione}}{{•}} {{Brak}}
}}
=== Szablony {{lr|Poczekalnia|poczekalni}} (do naprawiania i usuwania stron w wyniku przeprowadzonej dyskusji) ===
{{EfektKodów
| 1 = {{Tt|{{s|SdU|artykuły}}}} i jego przekierowanie {{Tt|{{S|DoSkasowania}}}}
| _1 = {{OpakujKategorieZeSortowaniem|{{SdU|artykuły|nazwa przestrzeni nazw={{Np|(main)}}|typ jednostki=artykuł}}}}
| 2 = {{Tt|{{s|SdUwynik|usuwane}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{SdUwynik|usuwane|nazwij jednostką=tak|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|1=DNU|2=artykuł|3=podstrona={{Czas|Y:m:d}}:Strona główna podręcznika/Nazwa podstrony}}}}
| _3 = {{OpakujKategorieZeSortowaniem|{{DNU|artykuł|podstrona={{Czas|Y:m:d}}:Strona główna podręcznika/Nazwa podstrony|dokumentacja=tak|nazwa przestrzeni nazw=(main)|nazwij jednostką=tak}}}}
| 4 = {{Tt|{{s|Kasowanie po przeniesieniu|{{Czas|d.m.Y}}}}}} i jego przekierowanie {{Tt|{{s|Kpp|{{Czas|d.m.Y}}}}}}
| _4 = {{OpakujKategorieZeSortowaniem|{{Kasowanie po przeniesieniu|{{Czas|d.m.Y}}|typ jednostki=artykuł}}}}
| 5 = {{Tt|{{s|DNU|usuwane|zakończenie{{=}}2023-10-06|podstrona{{=}}Wikibooks:Poczekalnia/artykuły/2023:10:06:Strona główna podręcznika/Nazwa podstrony}}}}
| _5 = {{OpakujKategorieZeSortowaniem|{{DNU|usuwane|zakończenie=2023-10-06|podstrona=Wikibooks:Poczekalnia/artykuły/2023:10:06:Strona główna podręcznika/Nazwa podstrony|dokumentacja=tak|typ jednostki=podręcznik}}}}
| 6 = {{Tt|{{s|DNUinfo|Fizyka wyższa|artykuł}}}}
|_6 = {{DNUinfo|Fizyka wyższa|artykuł|typ jednostki=strona główna użytkownika}}
| 7 = {{Tt|{{s|DNUinfo|Fizyka wyższa|2018:11:08|artykuł|tak}}}}
| _7 = {{DNUinfo|Fizyka wyższa|2018:11:08|artykuł|tak|typ jednostki=strona główna użytkownika}}
| 8 = {{Tt|{{s|DNU/info|Fizyka wyższa|artykuł}}}}
|_8 = {{DNU/info|Fizyka wyższa|artykuł|typ jednostki=strona główna użytkownika}}
| 9 = {{Tt|{{s|DNU/info|Fizyka wyższa|2018:11:08|artykuł|tak}}}}
|_9 = {{DNU/info|Fizyka wyższa|2018:11:08|artykuł|tak|typ jednostki=strona główna użytkownika}}
| 10 = {{Tt|{{s|LnDNU|Fizyka wyższa|rezultat{{=}}usuwane}}}}
| _10 = {{OpakujKategorieZeSortowaniem|{{LnDNU|Fizyka wyższa|rezultat=usuwane|nazwa przestrzeni nazw=Project|nazwa jednostki=Poczekalnia/artykuły/2018:11:08:Fizyka wyższa}}}}
| 11 = {{Tt|{{s|KSdU|strona{{=}}Aneks/Nazwy aminokwasów|nazwa{{=}}Nazwy aminokwasów}}}}
| _11 = {{KSdU|strona=Aneks/Nazwy aminokwasów|nazwa=Nazwy aminokwasów}}
| 12 ={{Tabela nawigacyjna|tytuł=Szablon: {{s|SDU}}, z dodanymi przykładowymi archiwami|spis={{Pre|
{{s|SDU
|naprawa{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/1{{!}}Archiwum 1{{))!}}}} (11 lis 2005 – 23 wrz 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/2{{!}}Archiwum 2{{))!}}}} (20 lis 2006 – 11 gru 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/3{{!}}Archiwum 3{{))!}}}} (22 sty 2009 – 31 gru 2009)}}}}
|prowokacje{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/1{{!}}Archiwum 1{{))!}}}} (12 gru 2005 – 31 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/2{{!}}Archiwum 2{{))!}}}} (1 lip 2006 – 17 lis 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/3{{!}}Archiwum 3{{))!}}}} (19 lis 2008 – 29 gru 2009)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/4{{!}}Archiwum 4{{))!}}}} (1 sty 2010 – 24 mar 2011)}}}}
|artykuły{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/1{{!}}Archiwum 1{{))!}}}} (30 sty 2006 – 29 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/2{{!}}Archiwum 2{{))!}}}} (30 sie 2006 – 15 lis 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/3{{!}}Archiwum 3{{))!}}}} (16 lis 2008 – 29 gru 2009)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/4{{!}}Archiwum 4{{))!}}}} (29 gru 2009 – 23 mar 2011)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/5{{!}}Archiwum 5{{))!}}}} (30 mar 2011 – 30 gru 2011)}}}}
|kwestie techniczne{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/kwestie techniczne/1{{!}}Archiwum 1{{))!}}}} (19 paź 2005 – 27 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/kwestie techniczne/2{{!}}Archiwum 2{{))!}}}} (28 sie 2006 – 14 lis 2008)}}}}
}}}}}}
|_12={{OpakujKategorieZeSortowaniem|{{SDU
|naprawa=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/1|Archiwum 1]] (11 lis 2005 – 23 wrz 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/2|Archiwum 2]] (20 lis 2006 – 11 gru 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/3|Archiwum 3]] (22 sty 2009 – 31 gru 2009)}}}}
|prowokacje=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/1|Archiwum 1]] (12 gru 2005 – 31 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/2|Archiwum 2]] (1 lip 2006 – 17 lis 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/3|Archiwum 3]] (19 lis 2008 – 29 gru 2009)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/4|Archiwum 4]] (1 sty 2010 – 24 mar 2011)}}}}
|artykuły=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/1|Archiwum 1]] (30 sty 2006 – 29 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/2|Archiwum 2]] (30 sie 2006 – 15 lis 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/3|Archiwum 3]] (16 lis 2008 – 29 gru 2009)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/4|Archiwum 4]] (29 gru 2009 – 23 mar 2011)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/5|Archiwum 5]] (30 mar 2011 – 30 gru 2011)}}}}
|kwestie techniczne=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/kwestie techniczne/1|Archiwum 1]] (19 paź 2005 – 27 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/kwestie techniczne/2|Archiwum 2]] (28 sie 2006 – 14 lis 2008)}}
}}}}}}
| 13 = {{Tt|{{s|SDU/Archiwum}}}}
| _13={{OpakujKategorieZeSortowaniem|{{SDU/Archiwum}}}}
}}
== Ikony kompletności ==
{{EfektKodów
| 1 = {{Tt|{{S|Etapy}}}}
* ''Zobacz {{lr2|Etapy rozwoju książek}}.''
| _1 = {{Etapy}}
| 2 = {{Tt|{{s|Etapy-junior}}}}
* ''Zobacz {{lr2|Etapy rozwoju książek}}.''
| _2 = {{Etapy-junior}}
| 3 = {{Tt|{{s|Kompletność|0%|04.11.2021}}}}
| _3 = {{Kompletność|0%|04.11.2021}}
| 4 = {{Tt|{{s|Kompletność|25%|04.11.2021}}}}
| _4 = {{Kompletność|25%|04.11.2021}}
| 5 = {{Tt|{{s|Kompletność|50%|04.11.2021}}}}
| _5 = {{Kompletność|50%|04.11.2021}}
| 6 = {{Tt|{{s|Kompletność|75%|04.11.2021}}}}
| _6 = {{Kompletność|75%|04.11.2021}}
| 7 = {{Tt|{{s|Kompletność|100%|04.11.2021}}}}
| _7 = {{Kompletność|100%|04.11.2021}}
| 8 = {{Tt|{{s|Kompletność|2-3|04.11.2021}}}}
| _8 = {{Kompletność|2-3|04.11.2021}}
| 9 = {{Tt|{{s|Kompletność|030|04.11.2021}}}}
| _9 = {{Kompletność|030|04.11.2021}}
| 10 = {{Tt|{{s|Kompletność junior|0|04.11.2021}}}}
| _10 = {{Kompletność junior|0|04.11.2021}}
| 11 = {{Tt|{{s|Kompletność junior|1|04.11.2021}}}}
| _11 = {{Kompletność junior|1|04.11.2021}}
| 12 = {{Tt|{{s|Kompletność junior|2|04.11.2021}}}}
| _12 = {{Kompletność junior|2|04.11.2021}}
| 13 = {{Tt|{{s|Kompletność junior|3|04.11.2021}}}}
| _13 = {{Kompletność junior|3|04.11.2021}}
| 14 = {{Tt|{{s|Książka|Fale|0%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _14 = {{Książka|Fale|0%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 15 = {{Tt|{{s|Książka|Fale|25%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _15 = {{Książka|Fale|25%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 16 = {{Tt|{{s|Książka|Fale|50%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _16 = {{Książka|Fale|50%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 17 = {{Tt|{{s|Książka|Fale|75%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _17 = {{Książka|Fale|75%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 18 = {{Tt|{{s|Książka|Fale|100%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _18 = {{Książka|Fale|100%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 19 = {{Tt|{{s|Książka|Fale|2-3|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _19 = {{Książka|Fale|2-3|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 20 = {{Tt|{{s|Książka|Fale|030|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _20 = {{Książka|Fale|030|04.11.2021|książka jest źródłem wiadomości o falach.}}
}}
== Nowe i wyróżnione podręczniki podręczniki miesiąca ==
Przedstawia podręczniki nowe i wyróżnione podręczniki miesiąca w wyniku przeprowadzonego głosowania.
=== Nowe podręczniki miesiąca ===
{{EfektKodów
| 1 = {{Tt|{{s|NPM}}}}
| _1 = {{OpakujKategorieZeSortowaniem|{{NPM|nazwa przestrzeni nazw=(main)}}}}
| 2 = {{Tt|{{s|Zwycięzca NPM}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{Zwycięzca NPM|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|Zwycięzca NPM krótki}}}}
|_3 = {{OpakujKategorieZeSortowaniem|{{Zwycięzca NPM krótki|nazwa przestrzeni nazw=(main)}}}}
}}
Stare wyróżnienia (patrz: {{lru|Nowy podręcznik miesiąca#Nowe podręczniki miesiąca w latach 2005 - 2006}} i {{lru|Nowy podręcznik miesiąca#Podręczniki uznane za "wkład miesiąca" w latach 2006 - 2007}}), a kategoria: {{lk2|Nowe podręczniki miesiąca}}, a je wszystko w postaci strony zbiorczej: {{ls2|Nowe podręczniki miesiąca/Zwycięzca}}.
=== Wyróżnione podręczniki miesiąca===
{{EfektKodów
| 1 = {{DivLinia}}
* Umieszczamy w linkach w identyfikatorze,
* Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* Przykład: {{Tt|{{s|Link FA|de|linia{{=}}tak}}}}, z parametrem: {{Parametr|linia|tak}}, lub bez niego w: {{Tt|(w sekcji interwiki)}}.
| _1 = {{Link FA|de|linia=tak}} - tutaj jest umieszczony w linii, ale podobnie jest sekcji interwiki
| 2 = {{Tt|{{s|WM|w czerwcu 2006|„''Wkład miesiąca czerwca 2006 roku''”}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{WM|w czerwcu 2006|„''Wkład miesiąca czerwca 2006 roku''”|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|WM/Info|wrzesień|2006}}}}
| _3 = {{OpakujKategorieZeSortowaniem|{{WM/Info|wrzesień|2006|nazwa przestrzeni nazw=(main)}}}}
| 4 = {{Tt|{{s|WM/Info krótkie|wrzesień|2006}}}}
|_4 = {{OpakujKategorieZeSortowaniem|{{WM/Info krótkie|wrzesień|2006|nazwa przestrzeni nazw=}}}}
| 5 = {{Tt|{{s|WM/Zegar|start{{=}}1 marca 2007|stop{{=}}8 marca 2007}}}}
|_5 = {{WM/Zegar|start=1 marca 2007|stop=8 marca 2007}}
}}
Kategoria wszystkich wyróżnień: {{lk2|Wyróżnienia książek miesiąca}}, a je wszystko w postaci strony zbiorczej: {{ls2|Wyróżnienia książek miesiąca/Wyróżniony}}.
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
rcfd2t55i105wkyc5pcsbz9oc9ahuym
551941
551940
2026-08-16T11:01:07Z
Persino
2851
/* Wyróżnione podręczniki miesiąca */
551941
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Szablony przypisów bibliograficznych i rzeczowych oraz referencji ==
Obecnie MediaWiki umożliwia tworzenie przypisów za pomocą specjalnej składni. Jest to objaśnione na stronie {{lpr2|Przypisy}}. Na Wikibooks przykładem użycia przypisów jest np. artykuł {{lg|Ruby/Moduły}}.
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre start}}
To jest tekst z uwagą{{s|u|uwaga 1}}. A to jest drugi tekst z inną uwagą{{s|u|uwaga 1}}{{s|u|uwaga 2}} do siebie zawierającą{{s|u|uwaga 2}} przypis{{s|r|Ala|Ola}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi|
|uwaga 1{{=}}To jest uwaga z przypisem{{s|r|P1}}
|uwaga 2{{=}}To jest inna{{s|r|P1}} uwaga{{s|u|uwaga 1}} z innym przypisem{{s|r|P2}} i uwagą{{s|u|uwaga 2}} do siebie
}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy|
|P1{{=}}To jest przypis do uwagi
|P2{{=}}To jest inny przypis do innej uwagi
|Ala{{=}}Ala
|Ola{{=}}Ola
}}{{Pre koniec}}
| _1 = To jest tekst z uwagą{{u|uwaga 1}}. A to jest drugi tekst z inną uwagą{{u|uwaga 1}}{{u|uwaga 2}} do siebie zawierającą{{u|uwaga 2}} przypis{{r|Ala|Ola}}.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi|
|uwaga 1=To jest uwaga z przypisem{{r|P1}}
|uwaga 2=To jest inna{{r|P1}} uwaga{{u|uwaga 1}} z innym przypisem{{r|P2}} i uwagą{{u|uwaga 2}} do siebie
}}}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy|
|P1=To jest przypis do uwagi
|P2=To jest inny przypis do innej uwagi
|Ala=Ala
|Ola=Ola
}}}}
| 2 = {{Tt|{{s|RNota}}}} (jego skrót: {{Tt|{{s|RN}}}}), dla {{Tt|{{s|UNota}}}} (jego skrót: {{Tt|{{s|UN}}}}).
{{Hr}}
{{Pre start}}
To jest tekst z uwagą{{s|UN|To jest uwaga 1}}. A to jest drugi tekst z inną uwagą{{s|UN|To jest uwaga 2}}{{s|RN|To jest przypis 1}} do siebie zawierającą{{s|UN|To jest uwaga 3}} przypis{{s|RN|To jest przypis 2}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}{{Pre koniec}}
| _2 = To jest tekst z uwagą{{UN|To jest uwaga 1}}. A to jest drugi tekst z inną uwagą{{UN|To jest uwaga 2}}{{RN|To jest przypis 1}} do siebie zawierającą{{UN|To jest uwaga 3}} przypis{{RN|To jest przypis 2}}.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi}}}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}}}
| 3 = {{Pre start}}
To jest jakiś przykładowy tekst nie należy na niego zwracać uwagę{{s|r|Nazwa przypisu}}, chyba że akurat gdzieś pojawi się coś przypisowatego{{s|r|Wydawca: Jakiś tytuł}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy-lista|
{{s|Ref|Nazwa przypisu|W przypisie może być cokolwiek}}
{{s|Ref|Wydawca: Jakiś tytuł|Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''}}
}}
{{Pre koniec}}
| _3 = To jest jakiś przykładowy tekst nie należy na niego zwracać uwagę{{r|Nazwa przypisu}}, chyba że akurat gdzieś pojawi się coś przypisowatego{{r|Wydawca: Jakiś tytuł}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy-lista|
{{Ref|Nazwa przypisu|W przypisie może być cokolwiek}}
{{Ref|Wydawca: Jakiś tytuł|Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''}}
}}
}}
| 4 = {{Pre start}}
Oto jest tekst przed referencją, by zademonstrować działanie tego szablonu.{{s|Ref|ref{{=}}{{s|Przypiswiki|Oto jest tekst referencji jeden, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto jest tekst po referencji, by zademonstrować działanie tego szablonu.{{s|Ref|ref{{=}}{{s|Przypiswiki|Oto jest tekst referencji dwa, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto dalszy tekst, by zademonstrować działanie tego szablonu.
{{Span|<nowiki>==</nowiki>|styl=color:green}} {{Strong|Przypisy}} {{Span|<nowiki>==</nowiki>|styl=color:green}}
{{s|Przypisy}}
{{Pre koniec}}
| _4 = Oto jest tekst przed referencją, by zademonstrować działanie tego szablonu.{{Ref|ref={{Przypiswiki|Oto jest tekst referencji jeden, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto jest tekst po referencji, by zademonstrować działanie tego szablonu.{{Ref|ref={{Przypiswiki|Oto jest tekst referencji dwa, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto dalszy tekst, by zademonstrować działanie tego szablonu.
{{OpakujKategorieZeSortowaniem|
==Przypisy==
{{Przypisy}}
}}
| 5 = {{Pre|
Oto jest tekst{{s|r|nazwa referencji 1}}{{s|r|nazwa referencji 2}}{{s|u|nazwa referencji 3}}{{s|u|nazwa referencji 4}}{{s|u|nazwa referencji 5}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy|
{{s|Ref|nazwa referencji 1|Treść referencji 1}}
{{s|Ref|nazwa referencji 2|Treść referencji 2}}
}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi|
{{s|Ref|nazwa referencji 3|Treść referencji 3}}
{{s|Ref|nazwa referencji 4|Treść referencji 4}}
{{s|Ref|nazwa referencji 5|Treść referencji 5}}
}}}}
| _5 = Oto jest tekst{{r|nazwa referencji 1}}{{r|nazwa referencji 2}}{{u|nazwa referencji 3}}{{u|nazwa referencji 4}}{{u|nazwa referencji 5}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy|
{{Ref|nazwa referencji 1|Treść referencji 1}}
{{Ref|nazwa referencji 2|Treść referencji 2}}
}}}}
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi|
{{Ref|nazwa referencji 3|Treść referencji 3}}
{{Ref|nazwa referencji 4|Treść referencji 4}}
{{Ref|nazwa referencji 5|Treść referencji 5}}
}}}}
| 6 = {{Pre start}}
Ala ma kota{{s|odn|Kowalski|2007}}. Pchnąć w tę łódź jeża{{s|odn|Kowalski|2007|s{{=}}42}}{{s|odn|Malinowski|Nowak|2005|s{{=}}138}} lub ośm skrzyń fig{{s|odn|Malinowski|Nowak|Kowalski|Smith|1998|s{{=}}138}}. Zażółć gęślą jaźń{{s|odn|Kowalski|2007|s{{=}}58, 97}}{{s|odn|Wikipedyści|2012}}. Sen to zdrowie{{s|odn|Malinowski|Nowak|2005|loc{{=}}Rozdział 13. Porady medyczne}}{{s|odn|Iksiński|2012|s{{=}}12}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Pre koniec}}
| _6 = Ala ma kota{{odn|Kowalski|2007}}. Pchnąć w tę łódź jeża{{odn|Kowalski|2007|s=42}}{{odn|Malinowski|Nowak|2005|s=138}} lub ośm skrzyń fig{{odn|Malinowski|Nowak|Kowalski|Smith|1998|=138}}. Zażółć gęślą jaźń{{odn|Kowalski|2007|s=58, 97}}{{odn|Wikipedyści|2012}}. Sen to zdrowie{{odn|Malinowski|Nowak|2005|loc=Rozdział 13. Porady medyczne}}{{odn|Iksiński|2012|s=12}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
| 7 = {{Pre start}}
Tekst artykułu{{s|r|P}}, w którym umieszczamy uwagę{{s|refn|grupa{{=}}uwaga|Tekst uwagi{{Mniejszy}}ref name{{=}}"P"{{Większy}}Przypis wewnątrz uwagi.{{Mniejszy}}/ref{{Większy}}.}} z przypisem wewnątrz niej.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Pre koniec}}
| _7 =
Tekst artykułu{{r|P}}, w którym umieszczamy uwagę{{refn|grupa=uwaga|Tekst uwagi<ref name="P">Przypis wewnątrz uwagi.</ref>.}} z przypisem wewnątrz niej.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi}}
}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
| 8 = {{Pre start}}
Ana w świecie początku epoki turystyki masowej{{s|Odn|Березовая Л. Г.|2014|s{{=}}463}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Bibliografia}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
<nowiki>*</nowiki> {{s|Source|Q42256584|ref{{=}}Березовая Л. Г.}}
{{Pre koniec}}
| _8 = Ana w świecie początku epoki turystyki masowej{{Odn|Березовая Л. Г.|2014|s=463}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
== Bibliografia ==
* {{Source|Q42256584|ref=Березовая Л. Г.}}
}}
== Prawa autorskie (licencja) ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|
<nowiki>== Licencja ==</nowiki>
{{s|Licencja
| Autor {{=}} <nowiki>[[Wikipedysta:Użytkownik|Imię i nazwisko]]</nowiki>
| Ukończone szkoły {{=}} Absolwent Szkoły Wyższej w Miejscowości
| Email {{=}} imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
}}}}
| _1 = {{OpakujKategorieZeSortowaniem|1={{DivLinia}}
== Licencja ==
{{Licencja
| Autor = [[Wikipedysta:Użytkownik|Imię i nazwisko]]
| Ukończone szkoły = Absolwent Szkoły Wyższej w Miejscowości
| Email = imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
}}}}
| 2 = {{Pre|
<nowiki>== Licencja ==</nowiki>
{{s|Licencja
| Autor {{=}} <nowiki>[[Wikipedysta:Użytkownik|Imię i nazwisko]]</nowiki>
| Ukończone szkoły {{=}} Absolwent Szkoły Wyższej w Miejscowości
| Email {{=}} imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
| Dotyczy {{=}} Tej strony i jego podstron.
| Licencjonowanie {{=}} Książka jest udzielana na licencji: GNU GPL Licence, a więc można kopiować i modyfikować dowolnie, jeżeli w treści zmodyfikowanej został wskazany autor lub autorzy wersji przed edycją.
| Umowa prawna {{=}} Pomiędzy {{s|NAZWASERWISU|Wikiboosem|link{{=}}tak}}, a czytającym lub ten modyfikującym tę książkę (strona główna) i jego podartykuły.
| Konsekwencje {{=}} Autor dołożył wszelkich , by informacje zawarte w podręczniku były poprawne, ale nie bierze na siebie odpowiedzialności karnej za sposób wykorzystania wiadomości zawartej w książce, a w przypadku wystąpieniu szkód lub naruszenia praw patentowych, nawet gdy {{S|NAZWASERWISU|link{{=}}tak}} lub autor książki zostanie powiadomiony, czytający nie może ubiegać się o odszkodowanie, a więc nie może być udzielona żadna rękojmia, czy też gwarancja.
}}
}}
| _2 = {{OpakujKategorieZeSortowaniem|{{DivLinia}}
== Licencja ==
{{Licencja
| Autor = [[Wikipedysta:Użytkownik|Imię i nazwisko]]
| Ukończone szkoły = Absolwent Szkoły Wyższej w Miejscowości
| Email = imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
| Dotyczy = Tej strony i jego podstron.
| Licencjonowanie = Książka jest udzielana na licencji: GNU GPL Licence, a więc można kopiować i modyfikować dowolnie, jeżeli w treści zmodyfikowanej został wskazany autor lub autorzy wersji przed edycją.
| Umowa prawna = Pomiędzy {{NAZWASERWISU|Wikiboosem|link=tak}}, a czytającym lub ten modyfikującym tę książkę (strona główna) i jego podartykuły.
| Konsekwencje = Autor dołożył wszelkich starań, by informacje zawarte w podręczniku były poprawne, ale nie bierze na siebie odpowiedzialności karnej za sposób wykorzystania wiadomości zawartej w książce, a w przypadku wystąpieniu szkód lub naruszenia praw patentowych, nawet gdy {{NAZWASERWISU|link=tak}} lub autor książki zostanie powiadomiony, czytający nie może ubiegać się o odszkodowanie, a więc nie może być udzielona żadna rękojmia, czy też gwarancja.
}}}}
}}
== Szablony cytowań tematycznych ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Cytuj grę komputerową | tytuł {{=}} <nowiki>[[w:Mass Effect: Andromeda|Mass Effect: Andromeda]]</nowiki> | producent {{=}} <nowiki>[[BioWare]]</nowiki>|miejsce{{=}}<nowiki>[[w:Warszawa|Warszawa]]</nowiki> | wydawca {{=}} <nowiki>[[w:Electronic Arts|Electronic Arts Polska]]</nowiki> | data {{=}} 23.03.2017 | platforma {{=}} <nowiki>[[w:PlayStation 4|PlayStation 4]]</nowiki> | dokument {{=}} Leksykon: Kettowie – Archont | język {{=}} pl | cytat {{=}} Osobnik zwany archontem jest dowódcą sił kettów w gromadzie Helejosa. Choć jest rzadko widywany, według doniesień jego wizytom w obiektach należących do kettów towarzyszą pokazy szacunku połączonego ze strachem, egzekucje dysydentów i prezentacje cennej technologii Porzuconych.}}}}
| _1 = {{Cytuj grę komputerową | tytuł = [[w:Mass Effect: Andromeda|Mass Effect: Andromeda]] | producent = [[w:BioWare|BioWare]]| miejsce = [[w:Warszawa|Warszawa]] | wydawca = [[w:Electronic Arts|Electronic Arts Polska]] | data = 23.03.2017 | platforma = [[w:PlayStation 4|PlayStation 4]] | dokument = Leksykon: Kettowie – Archont|język=pl|cytat=Osobnik zwany archontem jest dowódcą sił kettów w gromadzie Helejosa. Choć jest rzadko widywany, według doniesień jego wizytom w obiektach należących do kettów towarzyszą pokazy szacunku połączonego ze strachem, egzekucje dysydentów i prezentacje cennej technologii Porzuconych.}}
| 2 = {{Tt|{{s|Cytuj książkę |autor {{=}} Anil Kumar Maini | tytuł {{=}} Digital Electronics: Principles, Devices and Applications | url {{=}} <nowiki>https://books.google.com/?id=NQSpNAEACAAJ&pg=PA28</nowiki> | rok {{=}} 2007 | wydawca {{=}} John Wiley and Sons | isbn {{=}} 978-0-470-03214-5 | strony {{=}} 28 | cytat {{=}} In addition, it defines codes for 33 nonprinting, mostly obsolete control characters that affect how the text is processed. | język {{=}} en }}}}
| _2 = {{Cytuj książkę | autor = Anil Kumar Maini | tytuł = Digital Electronics: Principles, Devices and Applications | url = https://books.google.com/?id=NQSpNAEACAAJ&pg=PA28 | rok = 2007 | wydawca = John Wiley and Sons | isbn = 978-0-470-03214-5 | strony = 28 | cytat = In addition, it defines codes for 33 nonprinting, mostly obsolete control characters that affect how the text is processed. | język = en }}
| 3 = {{Tt|{{s|Cytuj odcinek | tytuł {{=}} BBC-TV Presents: The 2008 World Snooker Championship Live at The Crucible | odcinek link {{=}} w:BBC Snooker World Championship coverage (2008) | serial {{=}} Wide World of Snooker | serial link {{=}} w:Wide World of Snooker (program telewizyjny) | autorzy {{=}} Prezenterzy: <nowiki>[[w:Dennis Taylor|Dennis Taylor]] </nowiki> and <nowiki>[[w:Clive Everton|Clive Everton]]</nowiki> | stacja {{=}} <nowiki>[[w:British Broadcasting Corporation|BBC]]</nowiki> | stacja2 {{=}} <nowiki>[[w:BBC Two|BBC Two]]</nowiki> | miasto {{=}} <nowiki>[[w:Sheffield|Sheffield]]</nowiki>, <nowiki>[[w:Anglia|Anglia]]</nowiki> | emisja {{=}} 27 kwietnia 2004 | minuta {{=}} 2:34 | transkrypcja url {{=}} <nowiki>http://bbc.com/transkrypcjaaudycji.html</nowiki> | data dostępu {{=}} 23 czerwca 2008 }}}}
| _3 = {{Cytuj odcinek | tytuł = BBC-TV Presents: The 2008 World Snooker Championship Live at The Crucible | odcinek link = w:BBC Snooker World Championship coverage (2008) | serial = Wide World of Snooker | serial link = w:Wide World of Snooker (program telewizyjny) | autorzy = Prezenterzy: [[w:Dennis Taylor|Dennis Taylor]] and [[w:Clive Everton|Clive Everton]] | stacja = [[w:British Broadcasting Corporation|BBC]] | stacja2 = [[w:BBC Two|BBC Two]] | miasto = [[w:Sheffield|Sheffield]], [[w:Anglia|Anglia]] |emisja = 27 kwietnia 2004 | minuta = 2:34 | transkrypcja url = http://bbc.com/transkrypcjaaudycji.html | data dostępu = 23 czerwca 2008 }}
| 4 = {{Tt|{{s|Cytuj pismo | tytuł {{=}} Binary Computer Codes and ASCII | autor {{=}} Ed Bukstein | czasopismo {{=}} Electronics World | rok {{=}} 1964 | miesiąc {{=}} 07 | wolumin {{=}} 72 | wydawca {{=}} Poptronix Inc. | strony {{=}} 28–29 | język {{=}} en | url {{=}} <nowiki>http://www.swtpc.com/mholley/ElectronicsWorld/Jul1964/EW_Jul1964.htm</nowiki>| data dostępu {{=}} 2016-05-22 }}}}
| _4 = {{Cytuj pismo | tytuł = Binary Computer Codes and ASCII | autor = Ed Bukstein | czasopismo = Electronics World | rok = 1964 | miesiąc = 07 | wolumin = 72 | wydawca = Poptronix Inc. | strony = 28–29 | język = en | url = http://www.swtpc.com/mholley/ElectronicsWorld/Jul1964/EW_Jul1964.htm | data dostępu = 2016-05-22 }}
| 5 = {{Tt|{{s|Cytuj stronę | url {{=}} <nowiki>http://sjp.pwn.pl/poradnia/haslo/b-alternatywa-b;2079.html</nowiki> | tytuł {{=}} alternatywa | autor {{=}} [[w:Mirosław Bańko|Mirosław Bańko]] | praca {{=}} Poradnia językowa | opublikowany {{=}} PWN | data {{=}} 2002 | data dostępu {{=}} 2016-10-14 | odn {{=}} {{s|odn/id|Bańko|2002}} }}}}
| _5 = {{Cytuj stronę | url = http://sjp.pwn.pl/poradnia/haslo/b-alternatywa-b;2079.html | tytuł = alternatywa | autor = [[w:Mirosław Bańko|Mirosław Bańko]] | praca = Poradnia językowa | opublikowany = PWN | data = 2002 | data dostępu = 2016-10-14 | odn = {{odn/id|Bańko|2002}} }}
| 6 = {{Tt|{{s|Cytuj | autor {{=}} Benoit Viollet, Fabrizio Andreelli, Sebastian B. Jørgensen, Christophe Perrin, Alain Geloen, Daisy Flamez, James Mu, Claudia Lenzner, Olivier Baud, Myriam Bennoun, Emmanuel Gomas, Gaël Nicolas, Jørgen F.P. Wojtaszewski, Axel Kahn, David Carling, Frans C. Schuit, Morris J. Birnbaum, Erik A. Richter, Rémy Burcelin, Sophie Vaulont | tytuł {{=}} The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity | data {{=}} 2003 | czasopismo {{=}} The Journal of Clinical Investigation | doi {{=}} 10.1172/JCI16567 | wolumin {{=}} 111 | numer {{=}} 1 | pmid {{=}} 12511592 | pmc {{=}} 151837| s {{=}} 91-98 }}}}
| _6 = {{Cytuj | autor = Benoit Viollet, Fabrizio Andreelli, Sebastian B. Jørgensen, Christophe Perrin, Alain Geloen, Daisy Flamez, James Mu, Claudia Lenzner, Olivier Baud, Myriam Bennoun, Emmanuel Gomas, Gaël Nicolas, Jørgen F.P. Wojtaszewski, Axel Kahn, David Carling, Frans C. Schuit, Morris J. Birnbaum, Erik A. Richter, Rémy Burcelin, Sophie Vaulont | tytuł = The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity | data = 2003 | czasopismo = The Journal of Clinical Investigation | doi = 10.1172/JCI16567 | wolumin = 111 | numer = 1 | pmid = 12511592 | pmc = 151837 | s = 91-98 }}
}}
== Szablony cytatów ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Cytat|Wpłynąłem na suchego przestwór oceanu;{{s|Br}}
Wóz nurza się w zieloność i jak łódka brodzi:{{s|Br}}
Śród fali łąk szumiących, śród kwiatów powodzi,{{s|Br}}
Omijam koralowe ostrowy burzanu.}}}}
| _1 = {{Cytat|Wpłynąłem na suchego przestwór oceanu;{{Br}}
Wóz nurza się w zieloność i jak łódka brodzi:{{Br}}
Śród fali łąk szumiących, śród kwiatów powodzi,{{Br}}
Omijam koralowe ostrowy burzanu.}}
| 2 = {{Pre|{{s|Cytat box
|cytat {{=}} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|źródło {{=}} <nowiki>[[w:Cyceron|Cyceron]]</nowiki>, ''De finibus bonorum et malorum''
|width {{=}} 40%
|align {{=}} right
}}}}
| _2 = {{Cytat box
|cytat = Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|źródło = [[w:Cyceron|Cyceron]], ''De finibus bonorum et malorum''
|width = 40%
|align = right
}}
| 3 = {{Pre|{{s|CytatD
|Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|<nowiki>[[w:Cyceron|Cyceron]]</nowiki>|De finibus bonorum et malorum
}}}}
| _3 = {{CytatD
|Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|[[w:Cyceron|Cyceron]]|De finibus bonorum et malorum
}}
| 4 = {{Pre|{{s|CytatDłuższy|Nie można się oprzeć wrażeniu, że niektóre czynniki chciałyby widzieć Ligę przede wszystkim jako instrument, zwrócony przeciw t. zw. państwom totalnym. Uderzające jest, że te same czynniki chcą jakoby stotalizować życie międzynarodowe drogą tej samej Ligi Narodów. Wydaje mi się, że ta jaskrawa sprzeczność nie wymaga dalszych komentarzy.}}}}
| _4 = {{CytatDłuższy|
Nie można się oprzeć wrażeniu, że niektóre czynniki chciałyby widzieć Ligę przede wszystkim jako instrument, zwrócony przeciw t. zw. państwom totalnym. Uderzające jest, że te same czynniki chcą jakoby stotalizować życie międzynarodowe drogą tej samej Ligi Narodów. Wydaje mi się, że ta jaskrawa sprzeczność nie wymaga dalszych komentarzy.}}
}}
== Szablony tematyczne tekstowe ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Chem|C|n|H|2n + 2}}}} | _1 = {{Chem|C|n|H|2n + 2}}
| 2 = {{Tt|{{s|Chem2|H2C\dCH\sCH(CH3)2 + HCl → CH3\sCH2\sCCl(CH3)2 + CH3\sCHCl\sCH(CH3)2}}}} | _2 = {{Chem2|H2C\dCH\sCH(CH3)2 + HCl → CH3\sCH2\sCCl(CH3)2 + CH3\sCHCl\sCH(CH3)2}}
}}
== Szablony pudełkowe komunikatów informujących (mboksy) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Ambox|typ{{=}}wiadomość|tekst{{=}}typ{{=}}{{s|Un|wiadomość}} – informacje o artykule, jak {{s|s|Aktualne}} i {{s|s|W edycji}}.}}}}
| _1 = {{Ambox|typ=wiadomość|tekst=typ={{Un|wiadomość}} – informacje o artykule, jak {{S|Aktualne}} i {{S|W edycji}}.}}
| 2 = {{Tt|{{s|AmboxProsty|typ{{=}}pułapka|tekst{{=}}Użycie tej wartości nie jest dozwolone!}}}}
| _2 = {{AmboxProsty|typ=pułapka|tekst=Użycie tej wartości nie jest dozwolone!}}
| 3 = {{Tt|{{s|Tmbox|typ{{=}}poważny|tekst{{=}}<nowiki>'''</nowiki>typ{{=}}poważny<nowiki>'''</nowiki>{{s|Br}}Poważne problemy z artykułem/szablonem, takie, jak {{s|s|ek}}. Powinien być używany do informowania o błędnym wywołaniu jakiegoś szablonu wykorzystującego tmbox.}}}}
| _3 = {{Tmbox|typ=poważny|tekst='''typ=poważny'''{{Br}}Poważne problemy z artykułem/szablonem, takie, jak {{s|ek}}. Powinien być używany do informowania o błędnym wywołaniu jakiegoś szablonu wykorzystującego tmbox.}}
| 4 = {{Tt|{{s|Fmbox|typ{{=}}ostrzeżenie|tekst{{=}}typ{{=}}{{s|Un|ostrzeżenie}} – Systemowe ostrzeżenie.}}}}
| _4 = {{Fmbox|typ=ostrzeżenie|tekst=typ={{Un|ostrzeżenie}} – Systemowe ostrzeżenie.}}
| 5 = {{Tt|{{s|Ombox|typ{{=}}integruj|tekst{{=}}<nowiki>'''</nowiki>typ{{=}}integruj<nowiki>'''</nowiki>{{s|Br}}Artykuł musi zostać zintegrowany z innym. Wykorzystywany także do informacji o tłumaczeniu, źródle i wymaganym zintegrowaniu historii edycji.}}}}
| _5 = {{Ombox|typ=integruj|tekst='''typ=integruj'''{{Br}}Artykuł musi zostać zintegrowany z innym. Wykorzystywany także do informacji o tłumaczeniu, źródle i wymaganym zintegrowaniu historii edycji.}}
| 6 = {{Tt|{{s|Cmbox|typ{{=}}wiadomość|tekst{{=}}{{s|Parametr|typ|{{s|Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}}}
| _6 = {{Cmbox|typ=wiadomość|tekst={{Parametr|typ|{{Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}
| 7 = {{Tt|{{s|Imbox|typ{{=}}wiadomość|tekst{{=}}{{s|Parametr|typ|{{s|Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}}}
| _7 = {{Imbox|typ=wiadomość|tekst={{Parametr|typ|{{Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}
| 8 = {{Tt|{{s|Mbox|typ{{=}}poważny|tekst{{=}}typ{{=}}{{s|Un|poważny}} – Poważne problemy, jak {{S|s|ek}} i {{s|s|NPA}}.}}}}
| _8 = {{Mbox|typ=poważny|tekst=typ={{Un|poważny}} – Poważne problemy, jak {{S|ek}} i {{S|NPA}}.}}
| 9 = {{Tt|{{s|Dmbox|grafika{{=}}{{s|ikona|info|25}}|tekst{{=}}Nie mylić z {{s|s|tmbox}}}}}}
| _9 = {{Dmbox|grafika={{ikona|info|25}}|tekst=Nie mylić z {{s|tmbox}}}}
| 10 = {{Tt|{{s|Mbox-strona|typ{{=}}notatki|tekst{{=}}Ta książka wymaga znajomości: {{s|lg|Struktury danych}}.}}}}
| _10 = {{Mbox-strona|typ=notatki|tekst=Ta książka wymaga znajomości: {{lg|Struktury danych}}.}}
}}
== Pudełka zbierające wiele elementów w jednej ramce ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Ramka|
{{s|Plik|plik{{=}}Water-charge-surface.png|rozmiar{{=}}100px|pozycja{{=}}lewo}}
{{s|Plik|plik{{=}}Water molecule 3D.svg|rozmiar{{=}}100px|pozycja{{=}}prawo}}
{{s|Plik|plik{{=}}Water molecule dimensions.png|rozmiar{{=}}200px}}
| Kolejno: rozkład ładunku elektrycznego dookoła cząsteczki wody, widok 3D, wymiary i kąty w cząsteczce wody.
| 250px
| right
}}}}
| _1 = {{Ramka|
{{Plik|plik=Water-charge-surface.png|rozmiar=100px|pozycja=lewo}}
{{Plik|plik=Water molecule 3D.svg|rozmiar=100px|pozycja=prawo}}
{{Plik|plik=Water molecule dimensions.png|rozmiar=200px}}
| Kolejno: rozkład ładunku elektrycznego dookoła cząsteczki wody, widok 3D, wymiary i kąty w cząsteczce wody.
| 250px
| right
}}
}}
== Inne pudełka komórkowe (tabelki) i ramkowe ({{Tag|div}}) - niesystemowe ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe|kolor1{{=}}#C0C0C0|kolor2{{=}}#FFFBF4|kolor3{{=}}#00FFFF|kolor4{{=}}#000080|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
|_1 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe|kolor1=#C0C0C0|kolor2=#FFFBF4|kolor3=#00FFFF|kolor4=#000080|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 2 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 1|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _2 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 1|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 3 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 2|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _3 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 2|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 4 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 3|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _4 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 3|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 5 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 4|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _5 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 4|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 6 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 5|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _6 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 5|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 7 = {{Tt|{{s|Pudełko ramkowe|kolor1{{=}}#C0C0C0|kolor2{{=}}#FFFBF4|kolor3{{=}}#00FFFF|kolor4{{=}}#000080|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _7 = {{Pudełko ramkowe|kolor1=#C0C0C0|kolor2=#FFFBF4|kolor3=#00FFFF|kolor4=#000080|grafika-bez-div=|styl=width: 100%;box-sizing:border-box;|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 8 = {{Tt|{{s|Pudełko ramkowe 1|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _8 = {{Pudełko ramkowe 1|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 9 = {{Tt|{{s|Pudełko ramkowe 2|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box||grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _9 = {{Pudełko ramkowe 2|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 10 = {{Tt|{{s|Pudełko ramkowe 3|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box||grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _10 = {{Pudełko ramkowe 3|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 11 = {{Tt|{{s|Pudełko ramkowe 4|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _11 = {{Pudełko ramkowe 4|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 12 = {{Tt|{{s|Pudełko ramkowe 5|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _12 = {{Pudełko ramkowe 5|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
== Bloki komórkowe (tabelki) i ramkowe ({{Tag|div}}) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}}
{{s|Blok tabelowy|temat{{=}}1|tytuł{{=}}Kolor1}}
<nowiki>''</nowiki>To jest przykładowy tekst...<nowiki>''</nowiki>
{{s|Blok tabelowy/Zamknij}}
}}}}
| _1 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 =
{{Blok tabelowy|temat=1|tytuł=Kolor1}}
''To jest przykładowy tekst...''
{{Blok tabelowy/Zamknij}}
}}
| 2 = {{Pre|{{s|Blok ramkowy|temat{{=}}1|tytuł{{=}}Kolor1|szerokość{{=}}auto|margines{{=}}0 5px}}
<nowiki>''</nowiki>To jest przykładowy tekst...<nowiki>''</nowiki>
{{s|Blok ramkowy/Zamknij}}}}
| _2 = {{Blok ramkowy|temat=1|tytuł=Kolor1|szerokość=auto|margines=0 5px}}
''To jest przykładowy tekst...''
{{Blok ramkowy/Zamknij}}
}}
== Szablony sekcji (formy komórkowe i ramkowe) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|liczba wierszy{{=}}0|liczba kolumn{{=}}1
| nagłówek 1 {{=}} {{s|Sekcja komórkowa
| tytuł {{=}} {{s|Span|styl{{=}}color:#1443C7|Warto zajrzeć}}
| grafika {{=}} HSCategory.svg
| treść {{=}} {{s|Strona główna/Warto zajrzeć}}
| łącze {{=}}
| id {{=}} Warto
}}}}}}
| _1 = {{Tabela|liczba wierszy=0|liczba kolumn=1
| nagłówek 1 = {{Sekcja komórkowa
| tytuł = {{Span|styl=color:#1443C7|Warto zajrzeć}}
| grafika = HSCategory.svg
| treść = {{Strona główna/Warto zajrzeć}}
| łącze =
| id = Warto
}}
}}
| 2 = {{Pre|{{s|Sekcja ramkowa
| tytuł {{=}} {{s|Span|styl{{=}}color:#1443C7|Warto zajrzeć}}
| grafika {{=}} HSCategory.svg
| treść {{=}} {{s|Strona główna/Warto zajrzeć}}
| łącze {{=}}
| id {{=}} Warto
}}}}
| _2 = {{Sekcja ramkowa
| tytuł = {{Span|styl=color:#1443C7|Warto zajrzeć}}
| grafika = HSCategory.svg
| treść = {{Strona główna/Warto zajrzeć}}
| łącze =
| id = Warto
}}
}}
== Ramki informujące ==
Przedstawia wszystkie pudełka informacyjne, do których wstawia się tekst ich zawartości.
=== Szablony do zastosowań ogólnych ===
{{EfektKodów
| 1 = {{Tt|{{s|Uwaga|Tekst ostrzeżenia}}}} | _1 = {{Uwaga|Tekst ostrzeżenia}}
| 2 = {{Tt|{{s|Porada|Tekst porady}}}} | _2 = {{Porada|Tekst porady}}
| 3 = {{Tt|{{s|Infobox|Tekst informacji}}}} | _3 = {{Infobox|Tekst informacji}}
| 4 = {{Tt|{{s|Info|Tekst informacji}}}} | _4 = {{Info|Tekst informacji}}
| 5 = {{Tt|{{s|Zapamiętaj|2=Co należy zapamiętać}}}} | _5 = {{Zapamiętaj|Co należy zapamiętać}}
| 6 = {{Tt|{{s|Definicja|Tekst definicji}}}} | _6 = {{Definicja|Tekst definicji}}
| 7 = {{Tt|{{s|Definicja2|Tekst definicji}}}} | _7 = {{Definicja2|Tekst definicji}}
| 8 = {{Tt|{{s|Definicja3|Tekst definicji}}}} | _8 = {{Definicja3|Tekst definicji}}
| 9 = {{Tt|{{s|Ćwiczenie|Tekst ćwiczenia}}}} | _9 = {{Ćwiczenie|Tekst ćwiczenia}}
| 10 = {{Tt|{{s|InfoRamka|Tekst ramki}}}} | _10 = {{InfoRamka|Tekst ramki}}
| 11 = {{Tt|{{s|InfoReguła|Tekst reguły}}}} | _11 =
{{InfoReguła|Tekst reguły}}
| 12 = {{Tt|{{s|Ważne informacje|symbol{{=}}Klepsydra.svg|Nagłówek informacji|Tekst ważnej informacji}}}}| _12 = {{Ważne informacje|symbol=Klepsydra.svg|Nagłówek informacji|Tekst ważnej informacji}}
| 13 = {{Tt|{{s|RightBox|Wyróżniony tekst z prawej strony{{s|Br}}Szerokość zależna od zawartości}}}} | _13 = {{RightBox|Wyróżniony tekst z prawej strony{{Br}}Szerokość zależna od zawartości}}
| 14 = {{Tt|{{s|BlueBox|Wyróżniony tekst z prawej strony{{s|Br}}Szerokość zależna od zawartości}}}} | _14 = {{BlueBox|Wyróżniony tekst z prawej strony{{Br}}Szerokość zależna od zawartości}}
}}
Uwaga: Jeżeli w jednym z parametrów pojawi się znak równości, zastępujemy go {{lpg|Odwołania znakowe SGML|encją}} {{Tt|&#64;}}, czyli: {{Tt|{{s|Porada|argument tekstowy &#64; szablonu}}}}, lub zastosować go przez szablon {{s|{{=}}}}, czyli: {{Tt|{{s|Porada|argument tekstowy {{s|{{=}}}} szablonu}}}}, albo zmieniamy treść, wg wzoru: zamiast {{Tt|{{s|Porada|argument}}}} piszemy {{Tt|{{s|Porada|1{{=}}argument}}}}.
=== Ramki powiadające ===
{{EfektKodów
| 1 = {{Tt|{{s|W skrócie|to bełkot}}}}
| _1 = {{W skrócie|to bełkot}}
| 2 = {{Tt|{{s|W skrócie|po pierwsze|po drugie|i po trzecie}}}}
| _2 = {{W skrócie|po pierwsze|po drugie|i po trzecie}}
}}
=== Szablony do zastosowań tworzenia ramek w oparciu o szablony uniwersalne ===
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Uniwersalny szablon językowy
| kolor_tła {{=}} #f2fff2
| kolor_ramki {{=}} blue
| flaga {{=}} Flag of Poland.svg{{!}}border
| podpis_flagi {{=}} Język polski
| ikonka {{=}} Nuvola apps edu languages.svg
| podpis_ikonki {{=}} Dialog
| nazwa_szablonu {{=}} Dialog
| tytuł {{=}} Powitanie
| treść {{=}} <nowiki>''Cześć''</nowiki> – Hello
}}}}
| _1 = {{Uniwersalny szablon językowy
| kolor_tła = #f2fff2
| kolor_ramki = blue
| flaga = Flag of Poland.svg{{!}}border
| podpis_flagi = Język polski
| ikonka = Nuvola apps edu languages.svg
| podpis_ikonki = Dialog
| nazwa_szablonu = Dialog
| tytuł = Powitanie
| treść = ''Cześć'' – Hello
}}
}}
== Szablony do usuwania lub naprawiania albo diagnoz stron ==
Przedstawia szablony potrzebne do natychmiastowego usuwania stron oraz do naprawy lub ich usuwania.
=== Szablony do natychmiastowego usuwania stron lub do diagnozowania błędów ===
Szablony, które służą do usuwania stron, gdy ta strona będzie niepotrzebna lub ona narusza zasady polskiego {{NAZWASERWISU|po=a|link=tak}}.
==== Szablony do natychmiastowego usuwania artykułów ====
{{EfektKodów
| 1 = {{Tt|{{s|ek|powód}}}} i jego przekierowania: {{Tt|{{s|EK|powód}}}}{{•}} {{Tt|{{s|Delete|powód}}}}{{•}} {{Tt|{{s|Screenshot|powód}}}} (do zastosowań do rysunków)
| _1 = {{OpakujKategorieZeSortowaniem|{{ek|powód}}}}
| 2 = {{Tt|{{s|ek2|powód}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{ek2|powód}}}}
| 3 = {{Tt|{{s|Admin usuń}}}} - wynik w postaci tekstowej po działaniu szablonem {{Tt|{{s|Nowiki}}}}
| _3= {{Nowiki|{{Admin usuń}}}}
}}
==== Diagnozowanie błędów ====
{{EfektKodów
| 1 = {{Tt|{{s|#iferror:{{s|Błąd|Foo}} | {{s|Tak}} | {{s|Nie}} }}}}
|_1 = {{#iferror:{{Błąd|Foo}} | {{Tak}} | {{Nie}} }}
}}
=== Szablony potwierdzeń, oznaczające zgodę na tak lub nie, na jakieś operacje ===
{{EfektKodów
| 1 = {{Tt|{{s|Tak}}}} | _1 = {{Tak}}
| 2 = {{Tt|{{s|Nie}}}} | _2 = {{Nie}}
| 3 = {{Tt|{{s|Za}}}} | _3 = {{Za}}
| 4 = {{Tt|{{s|Przeciw}}}} | _4 = {{Przeciw}}
| 5 = {{Tt|{{s|Usunąć}}}} | _5 = {{Usunąć}}
| 6 = {{Tt|{{s|Załatwione}}}} | _6 = {{Załatwione}}
| 7 = {{Tt|{{s|Zostawić}}}} | _7 = {{Zostawić}}
| 8 = {{Tt|{{s|Zrobione}}}} i jego przekierowanie {{Tt|{{s|Done}}}} | _8 = {{Zrobione}}{{•}} {{Done}}
| 9 = {{Tt|{{s|Niezrobione}}}} | _9 = {{Niezrobione}}
| 10 = {{Tt|{{s|Niezałatwione}}}} i jego przekierowanie {{Tt|{{s|Brak}}}} | _10 = {{Niezałatwione}}{{•}} {{Brak}}
}}
=== Szablony {{lr|Poczekalnia|poczekalni}} (do naprawiania i usuwania stron w wyniku przeprowadzonej dyskusji) ===
{{EfektKodów
| 1 = {{Tt|{{s|SdU|artykuły}}}} i jego przekierowanie {{Tt|{{S|DoSkasowania}}}}
| _1 = {{OpakujKategorieZeSortowaniem|{{SdU|artykuły|nazwa przestrzeni nazw={{Np|(main)}}|typ jednostki=artykuł}}}}
| 2 = {{Tt|{{s|SdUwynik|usuwane}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{SdUwynik|usuwane|nazwij jednostką=tak|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|1=DNU|2=artykuł|3=podstrona={{Czas|Y:m:d}}:Strona główna podręcznika/Nazwa podstrony}}}}
| _3 = {{OpakujKategorieZeSortowaniem|{{DNU|artykuł|podstrona={{Czas|Y:m:d}}:Strona główna podręcznika/Nazwa podstrony|dokumentacja=tak|nazwa przestrzeni nazw=(main)|nazwij jednostką=tak}}}}
| 4 = {{Tt|{{s|Kasowanie po przeniesieniu|{{Czas|d.m.Y}}}}}} i jego przekierowanie {{Tt|{{s|Kpp|{{Czas|d.m.Y}}}}}}
| _4 = {{OpakujKategorieZeSortowaniem|{{Kasowanie po przeniesieniu|{{Czas|d.m.Y}}|typ jednostki=artykuł}}}}
| 5 = {{Tt|{{s|DNU|usuwane|zakończenie{{=}}2023-10-06|podstrona{{=}}Wikibooks:Poczekalnia/artykuły/2023:10:06:Strona główna podręcznika/Nazwa podstrony}}}}
| _5 = {{OpakujKategorieZeSortowaniem|{{DNU|usuwane|zakończenie=2023-10-06|podstrona=Wikibooks:Poczekalnia/artykuły/2023:10:06:Strona główna podręcznika/Nazwa podstrony|dokumentacja=tak|typ jednostki=podręcznik}}}}
| 6 = {{Tt|{{s|DNUinfo|Fizyka wyższa|artykuł}}}}
|_6 = {{DNUinfo|Fizyka wyższa|artykuł|typ jednostki=strona główna użytkownika}}
| 7 = {{Tt|{{s|DNUinfo|Fizyka wyższa|2018:11:08|artykuł|tak}}}}
| _7 = {{DNUinfo|Fizyka wyższa|2018:11:08|artykuł|tak|typ jednostki=strona główna użytkownika}}
| 8 = {{Tt|{{s|DNU/info|Fizyka wyższa|artykuł}}}}
|_8 = {{DNU/info|Fizyka wyższa|artykuł|typ jednostki=strona główna użytkownika}}
| 9 = {{Tt|{{s|DNU/info|Fizyka wyższa|2018:11:08|artykuł|tak}}}}
|_9 = {{DNU/info|Fizyka wyższa|2018:11:08|artykuł|tak|typ jednostki=strona główna użytkownika}}
| 10 = {{Tt|{{s|LnDNU|Fizyka wyższa|rezultat{{=}}usuwane}}}}
| _10 = {{OpakujKategorieZeSortowaniem|{{LnDNU|Fizyka wyższa|rezultat=usuwane|nazwa przestrzeni nazw=Project|nazwa jednostki=Poczekalnia/artykuły/2018:11:08:Fizyka wyższa}}}}
| 11 = {{Tt|{{s|KSdU|strona{{=}}Aneks/Nazwy aminokwasów|nazwa{{=}}Nazwy aminokwasów}}}}
| _11 = {{KSdU|strona=Aneks/Nazwy aminokwasów|nazwa=Nazwy aminokwasów}}
| 12 ={{Tabela nawigacyjna|tytuł=Szablon: {{s|SDU}}, z dodanymi przykładowymi archiwami|spis={{Pre|
{{s|SDU
|naprawa{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/1{{!}}Archiwum 1{{))!}}}} (11 lis 2005 – 23 wrz 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/2{{!}}Archiwum 2{{))!}}}} (20 lis 2006 – 11 gru 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/3{{!}}Archiwum 3{{))!}}}} (22 sty 2009 – 31 gru 2009)}}}}
|prowokacje{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/1{{!}}Archiwum 1{{))!}}}} (12 gru 2005 – 31 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/2{{!}}Archiwum 2{{))!}}}} (1 lip 2006 – 17 lis 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/3{{!}}Archiwum 3{{))!}}}} (19 lis 2008 – 29 gru 2009)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/4{{!}}Archiwum 4{{))!}}}} (1 sty 2010 – 24 mar 2011)}}}}
|artykuły{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/1{{!}}Archiwum 1{{))!}}}} (30 sty 2006 – 29 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/2{{!}}Archiwum 2{{))!}}}} (30 sie 2006 – 15 lis 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/3{{!}}Archiwum 3{{))!}}}} (16 lis 2008 – 29 gru 2009)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/4{{!}}Archiwum 4{{))!}}}} (29 gru 2009 – 23 mar 2011)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/5{{!}}Archiwum 5{{))!}}}} (30 mar 2011 – 30 gru 2011)}}}}
|kwestie techniczne{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/kwestie techniczne/1{{!}}Archiwum 1{{))!}}}} (19 paź 2005 – 27 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/kwestie techniczne/2{{!}}Archiwum 2{{))!}}}} (28 sie 2006 – 14 lis 2008)}}}}
}}}}}}
|_12={{OpakujKategorieZeSortowaniem|{{SDU
|naprawa=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/1|Archiwum 1]] (11 lis 2005 – 23 wrz 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/2|Archiwum 2]] (20 lis 2006 – 11 gru 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/3|Archiwum 3]] (22 sty 2009 – 31 gru 2009)}}}}
|prowokacje=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/1|Archiwum 1]] (12 gru 2005 – 31 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/2|Archiwum 2]] (1 lip 2006 – 17 lis 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/3|Archiwum 3]] (19 lis 2008 – 29 gru 2009)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/4|Archiwum 4]] (1 sty 2010 – 24 mar 2011)}}}}
|artykuły=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/1|Archiwum 1]] (30 sty 2006 – 29 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/2|Archiwum 2]] (30 sie 2006 – 15 lis 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/3|Archiwum 3]] (16 lis 2008 – 29 gru 2009)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/4|Archiwum 4]] (29 gru 2009 – 23 mar 2011)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/5|Archiwum 5]] (30 mar 2011 – 30 gru 2011)}}}}
|kwestie techniczne=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/kwestie techniczne/1|Archiwum 1]] (19 paź 2005 – 27 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/kwestie techniczne/2|Archiwum 2]] (28 sie 2006 – 14 lis 2008)}}
}}}}}}
| 13 = {{Tt|{{s|SDU/Archiwum}}}}
| _13={{OpakujKategorieZeSortowaniem|{{SDU/Archiwum}}}}
}}
== Ikony kompletności ==
{{EfektKodów
| 1 = {{Tt|{{S|Etapy}}}}
* ''Zobacz {{lr2|Etapy rozwoju książek}}.''
| _1 = {{Etapy}}
| 2 = {{Tt|{{s|Etapy-junior}}}}
* ''Zobacz {{lr2|Etapy rozwoju książek}}.''
| _2 = {{Etapy-junior}}
| 3 = {{Tt|{{s|Kompletność|0%|04.11.2021}}}}
| _3 = {{Kompletność|0%|04.11.2021}}
| 4 = {{Tt|{{s|Kompletność|25%|04.11.2021}}}}
| _4 = {{Kompletność|25%|04.11.2021}}
| 5 = {{Tt|{{s|Kompletność|50%|04.11.2021}}}}
| _5 = {{Kompletność|50%|04.11.2021}}
| 6 = {{Tt|{{s|Kompletność|75%|04.11.2021}}}}
| _6 = {{Kompletność|75%|04.11.2021}}
| 7 = {{Tt|{{s|Kompletność|100%|04.11.2021}}}}
| _7 = {{Kompletność|100%|04.11.2021}}
| 8 = {{Tt|{{s|Kompletność|2-3|04.11.2021}}}}
| _8 = {{Kompletność|2-3|04.11.2021}}
| 9 = {{Tt|{{s|Kompletność|030|04.11.2021}}}}
| _9 = {{Kompletność|030|04.11.2021}}
| 10 = {{Tt|{{s|Kompletność junior|0|04.11.2021}}}}
| _10 = {{Kompletność junior|0|04.11.2021}}
| 11 = {{Tt|{{s|Kompletność junior|1|04.11.2021}}}}
| _11 = {{Kompletność junior|1|04.11.2021}}
| 12 = {{Tt|{{s|Kompletność junior|2|04.11.2021}}}}
| _12 = {{Kompletność junior|2|04.11.2021}}
| 13 = {{Tt|{{s|Kompletność junior|3|04.11.2021}}}}
| _13 = {{Kompletność junior|3|04.11.2021}}
| 14 = {{Tt|{{s|Książka|Fale|0%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _14 = {{Książka|Fale|0%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 15 = {{Tt|{{s|Książka|Fale|25%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _15 = {{Książka|Fale|25%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 16 = {{Tt|{{s|Książka|Fale|50%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _16 = {{Książka|Fale|50%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 17 = {{Tt|{{s|Książka|Fale|75%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _17 = {{Książka|Fale|75%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 18 = {{Tt|{{s|Książka|Fale|100%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _18 = {{Książka|Fale|100%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 19 = {{Tt|{{s|Książka|Fale|2-3|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _19 = {{Książka|Fale|2-3|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 20 = {{Tt|{{s|Książka|Fale|030|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _20 = {{Książka|Fale|030|04.11.2021|książka jest źródłem wiadomości o falach.}}
}}
== Nowe i wyróżnione podręczniki podręczniki miesiąca ==
Przedstawia podręczniki nowe i wyróżnione podręczniki miesiąca w wyniku przeprowadzonego głosowania.
=== Nowe podręczniki miesiąca ===
{{EfektKodów
| 1 = {{Tt|{{s|NPM}}}}
| _1 = {{OpakujKategorieZeSortowaniem|{{NPM|nazwa przestrzeni nazw=(main)}}}}
| 2 = {{Tt|{{s|Zwycięzca NPM}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{Zwycięzca NPM|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|Zwycięzca NPM krótki}}}}
|_3 = {{OpakujKategorieZeSortowaniem|{{Zwycięzca NPM krótki|nazwa przestrzeni nazw=(main)}}}}
}}
Stare wyróżnienia (patrz: {{lru|Nowy podręcznik miesiąca#Nowe podręczniki miesiąca w latach 2005 - 2006}} i {{lru|Nowy podręcznik miesiąca#Podręczniki uznane za "wkład miesiąca" w latach 2006 - 2007}}), a kategoria: {{lk2|Nowe podręczniki miesiąca}}, a je wszystko w postaci strony zbiorczej: {{ls2|Nowe podręczniki miesiąca/Zwycięzca}}.
=== Wyróżnione podręczniki miesiąca===
{{EfektKodów
| 1 = {{DivLinia}}
* Umieszczamy w linkach w identyfikatorze,
* Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* Przykład: {{Tt|{{s|Link FA|de|linia{{=}}tak}}}}, z parametrem: {{Parametr|linia|tak}}, lub bez niego w: {{Tt|(w sekcji interwiki)}}.
| _1 = {{Link FA|de|linia=tak}} - tutaj jest umieszczony w linii, ale podobnie jest sekcji interwiki w identyfikatorze
| 2 = {{Tt|{{s|WM|w czerwcu 2006|„''Wkład miesiąca czerwca 2006 roku''”}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{WM|w czerwcu 2006|„''Wkład miesiąca czerwca 2006 roku''”|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|WM/Info|wrzesień|2006}}}}
| _3 = {{OpakujKategorieZeSortowaniem|{{WM/Info|wrzesień|2006|nazwa przestrzeni nazw=(main)}}}}
| 4 = {{Tt|{{s|WM/Info krótkie|wrzesień|2006}}}}
|_4 = {{OpakujKategorieZeSortowaniem|{{WM/Info krótkie|wrzesień|2006|nazwa przestrzeni nazw=}}}}
| 5 = {{Tt|{{s|WM/Zegar|start{{=}}1 marca 2007|stop{{=}}8 marca 2007}}}}
|_5 = {{WM/Zegar|start=1 marca 2007|stop=8 marca 2007}}
}}
Kategoria wszystkich wyróżnień: {{lk2|Wyróżnienia książek miesiąca}}, a je wszystko w postaci strony zbiorczej: {{ls2|Wyróżnienia książek miesiąca/Wyróżniony}}.
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
oxexabqzyv9o1tcjj5jp4a52yvclzwe
551946
551941
2026-08-16T11:08:09Z
Persino
2851
/* Wyróżnione podręczniki miesiąca */
551946
wikitext
text/x-wiki
<noinclude>{{Autonawigacja|Pomoc:Spis treści}}</noinclude>
== Szablony przypisów bibliograficznych i rzeczowych oraz referencji ==
Obecnie MediaWiki umożliwia tworzenie przypisów za pomocą specjalnej składni. Jest to objaśnione na stronie {{lpr2|Przypisy}}. Na Wikibooks przykładem użycia przypisów jest np. artykuł {{lg|Ruby/Moduły}}.
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre start}}
To jest tekst z uwagą{{s|u|uwaga 1}}. A to jest drugi tekst z inną uwagą{{s|u|uwaga 1}}{{s|u|uwaga 2}} do siebie zawierającą{{s|u|uwaga 2}} przypis{{s|r|Ala|Ola}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi|
|uwaga 1{{=}}To jest uwaga z przypisem{{s|r|P1}}
|uwaga 2{{=}}To jest inna{{s|r|P1}} uwaga{{s|u|uwaga 1}} z innym przypisem{{s|r|P2}} i uwagą{{s|u|uwaga 2}} do siebie
}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy|
|P1{{=}}To jest przypis do uwagi
|P2{{=}}To jest inny przypis do innej uwagi
|Ala{{=}}Ala
|Ola{{=}}Ola
}}{{Pre koniec}}
| _1 = To jest tekst z uwagą{{u|uwaga 1}}. A to jest drugi tekst z inną uwagą{{u|uwaga 1}}{{u|uwaga 2}} do siebie zawierającą{{u|uwaga 2}} przypis{{r|Ala|Ola}}.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi|
|uwaga 1=To jest uwaga z przypisem{{r|P1}}
|uwaga 2=To jest inna{{r|P1}} uwaga{{u|uwaga 1}} z innym przypisem{{r|P2}} i uwagą{{u|uwaga 2}} do siebie
}}}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy|
|P1=To jest przypis do uwagi
|P2=To jest inny przypis do innej uwagi
|Ala=Ala
|Ola=Ola
}}}}
| 2 = {{Tt|{{s|RNota}}}} (jego skrót: {{Tt|{{s|RN}}}}), dla {{Tt|{{s|UNota}}}} (jego skrót: {{Tt|{{s|UN}}}}).
{{Hr}}
{{Pre start}}
To jest tekst z uwagą{{s|UN|To jest uwaga 1}}. A to jest drugi tekst z inną uwagą{{s|UN|To jest uwaga 2}}{{s|RN|To jest przypis 1}} do siebie zawierającą{{s|UN|To jest uwaga 3}} przypis{{s|RN|To jest przypis 2}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}{{Pre koniec}}
| _2 = To jest tekst z uwagą{{UN|To jest uwaga 1}}. A to jest drugi tekst z inną uwagą{{UN|To jest uwaga 2}}{{RN|To jest przypis 1}} do siebie zawierającą{{UN|To jest uwaga 3}} przypis{{RN|To jest przypis 2}}.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi}}}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}}}
| 3 = {{Pre start}}
To jest jakiś przykładowy tekst nie należy na niego zwracać uwagę{{s|r|Nazwa przypisu}}, chyba że akurat gdzieś pojawi się coś przypisowatego{{s|r|Wydawca: Jakiś tytuł}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy-lista|
{{s|Ref|Nazwa przypisu|W przypisie może być cokolwiek}}
{{s|Ref|Wydawca: Jakiś tytuł|Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''}}
}}
{{Pre koniec}}
| _3 = To jest jakiś przykładowy tekst nie należy na niego zwracać uwagę{{r|Nazwa przypisu}}, chyba że akurat gdzieś pojawi się coś przypisowatego{{r|Wydawca: Jakiś tytuł}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy-lista|
{{Ref|Nazwa przypisu|W przypisie może być cokolwiek}}
{{Ref|Wydawca: Jakiś tytuł|Franciszka Tłumacząca, ''Przypisy często zawierają odniesienia do literatury lub źródeł internetowych''}}
}}
}}
| 4 = {{Pre start}}
Oto jest tekst przed referencją, by zademonstrować działanie tego szablonu.{{s|Ref|ref{{=}}{{s|Przypiswiki|Oto jest tekst referencji jeden, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto jest tekst po referencji, by zademonstrować działanie tego szablonu.{{s|Ref|ref{{=}}{{s|Przypiswiki|Oto jest tekst referencji dwa, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto dalszy tekst, by zademonstrować działanie tego szablonu.
{{Span|<nowiki>==</nowiki>|styl=color:green}} {{Strong|Przypisy}} {{Span|<nowiki>==</nowiki>|styl=color:green}}
{{s|Przypisy}}
{{Pre koniec}}
| _4 = Oto jest tekst przed referencją, by zademonstrować działanie tego szablonu.{{Ref|ref={{Przypiswiki|Oto jest tekst referencji jeden, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto jest tekst po referencji, by zademonstrować działanie tego szablonu.{{Ref|ref={{Przypiswiki|Oto jest tekst referencji dwa, by zademonstrować działanie tego szablonu z użyciem szablonu {{s|Ref}}.}}}} Oto dalszy tekst, by zademonstrować działanie tego szablonu.
{{OpakujKategorieZeSortowaniem|
==Przypisy==
{{Przypisy}}
}}
| 5 = {{Pre|
Oto jest tekst{{s|r|nazwa referencji 1}}{{s|r|nazwa referencji 2}}{{s|u|nazwa referencji 3}}{{s|u|nazwa referencji 4}}{{s|u|nazwa referencji 5}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy|
{{s|Ref|nazwa referencji 1|Treść referencji 1}}
{{s|Ref|nazwa referencji 2|Treść referencji 2}}
}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi|
{{s|Ref|nazwa referencji 3|Treść referencji 3}}
{{s|Ref|nazwa referencji 4|Treść referencji 4}}
{{s|Ref|nazwa referencji 5|Treść referencji 5}}
}}}}
| _5 = Oto jest tekst{{r|nazwa referencji 1}}{{r|nazwa referencji 2}}{{u|nazwa referencji 3}}{{u|nazwa referencji 4}}{{u|nazwa referencji 5}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy|
{{Ref|nazwa referencji 1|Treść referencji 1}}
{{Ref|nazwa referencji 2|Treść referencji 2}}
}}}}
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi|
{{Ref|nazwa referencji 3|Treść referencji 3}}
{{Ref|nazwa referencji 4|Treść referencji 4}}
{{Ref|nazwa referencji 5|Treść referencji 5}}
}}}}
| 6 = {{Pre start}}
Ala ma kota{{s|odn|Kowalski|2007}}. Pchnąć w tę łódź jeża{{s|odn|Kowalski|2007|s{{=}}42}}{{s|odn|Malinowski|Nowak|2005|s{{=}}138}} lub ośm skrzyń fig{{s|odn|Malinowski|Nowak|Kowalski|Smith|1998|s{{=}}138}}. Zażółć gęślą jaźń{{s|odn|Kowalski|2007|s{{=}}58, 97}}{{s|odn|Wikipedyści|2012}}. Sen to zdrowie{{s|odn|Malinowski|Nowak|2005|loc{{=}}Rozdział 13. Porady medyczne}}{{s|odn|Iksiński|2012|s{{=}}12}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Pre koniec}}
| _6 = Ala ma kota{{odn|Kowalski|2007}}. Pchnąć w tę łódź jeża{{odn|Kowalski|2007|s=42}}{{odn|Malinowski|Nowak|2005|s=138}} lub ośm skrzyń fig{{odn|Malinowski|Nowak|Kowalski|Smith|1998|=138}}. Zażółć gęślą jaźń{{odn|Kowalski|2007|s=58, 97}}{{odn|Wikipedyści|2012}}. Sen to zdrowie{{odn|Malinowski|Nowak|2005|loc=Rozdział 13. Porady medyczne}}{{odn|Iksiński|2012|s=12}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
| 7 = {{Pre start}}
Tekst artykułu{{s|r|P}}, w którym umieszczamy uwagę{{s|refn|grupa{{=}}uwaga|Tekst uwagi{{Mniejszy}}ref name{{=}}"P"{{Większy}}Przypis wewnątrz uwagi.{{Mniejszy}}/ref{{Większy}}.}} z przypisem wewnątrz niej.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Uwagi}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Uwagi}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Pre koniec}}
| _7 =
Tekst artykułu{{r|P}}, w którym umieszczamy uwagę{{refn|grupa=uwaga|Tekst uwagi<ref name="P">Przypis wewnątrz uwagi.</ref>.}} z przypisem wewnątrz niej.
{{OpakujKategorieZeSortowaniem|
== Uwagi ==
{{Uwagi}}
}}
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
| 8 = {{Pre start}}
Ana w świecie początku epoki turystyki masowej{{s|Odn|Березовая Л. Г.|2014|s{{=}}463}}.
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Przypisy}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
{{s|Przypisy}}
{{Span|styl=color:green|<nowiki>==</nowiki>}} {{Strong|Bibliografia}} {{Span|styl=color:green|<nowiki>==</nowiki>}}
<nowiki>*</nowiki> {{s|Source|Q42256584|ref{{=}}Березовая Л. Г.}}
{{Pre koniec}}
| _8 = Ana w świecie początku epoki turystyki masowej{{Odn|Березовая Л. Г.|2014|s=463}}.
{{OpakujKategorieZeSortowaniem|
== Przypisy ==
{{Przypisy}}
}}
== Bibliografia ==
* {{Source|Q42256584|ref=Березовая Л. Г.}}
}}
== Prawa autorskie (licencja) ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|
<nowiki>== Licencja ==</nowiki>
{{s|Licencja
| Autor {{=}} <nowiki>[[Wikipedysta:Użytkownik|Imię i nazwisko]]</nowiki>
| Ukończone szkoły {{=}} Absolwent Szkoły Wyższej w Miejscowości
| Email {{=}} imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
}}}}
| _1 = {{OpakujKategorieZeSortowaniem|1={{DivLinia}}
== Licencja ==
{{Licencja
| Autor = [[Wikipedysta:Użytkownik|Imię i nazwisko]]
| Ukończone szkoły = Absolwent Szkoły Wyższej w Miejscowości
| Email = imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
}}}}
| 2 = {{Pre|
<nowiki>== Licencja ==</nowiki>
{{s|Licencja
| Autor {{=}} <nowiki>[[Wikipedysta:Użytkownik|Imię i nazwisko]]</nowiki>
| Ukończone szkoły {{=}} Absolwent Szkoły Wyższej w Miejscowości
| Email {{=}} imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
| Dotyczy {{=}} Tej strony i jego podstron.
| Licencjonowanie {{=}} Książka jest udzielana na licencji: GNU GPL Licence, a więc można kopiować i modyfikować dowolnie, jeżeli w treści zmodyfikowanej został wskazany autor lub autorzy wersji przed edycją.
| Umowa prawna {{=}} Pomiędzy {{s|NAZWASERWISU|Wikiboosem|link{{=}}tak}}, a czytającym lub ten modyfikującym tę książkę (strona główna) i jego podartykuły.
| Konsekwencje {{=}} Autor dołożył wszelkich , by informacje zawarte w podręczniku były poprawne, ale nie bierze na siebie odpowiedzialności karnej za sposób wykorzystania wiadomości zawartej w książce, a w przypadku wystąpieniu szkód lub naruszenia praw patentowych, nawet gdy {{S|NAZWASERWISU|link{{=}}tak}} lub autor książki zostanie powiadomiony, czytający nie może ubiegać się o odszkodowanie, a więc nie może być udzielona żadna rękojmia, czy też gwarancja.
}}
}}
| _2 = {{OpakujKategorieZeSortowaniem|{{DivLinia}}
== Licencja ==
{{Licencja
| Autor = [[Wikipedysta:Użytkownik|Imię i nazwisko]]
| Ukończone szkoły = Absolwent Szkoły Wyższej w Miejscowości
| Email = imię(kropka)nazwisko(małpa)moja(kropka)poczta(kropka)pl
| Dotyczy = Tej strony i jego podstron.
| Licencjonowanie = Książka jest udzielana na licencji: GNU GPL Licence, a więc można kopiować i modyfikować dowolnie, jeżeli w treści zmodyfikowanej został wskazany autor lub autorzy wersji przed edycją.
| Umowa prawna = Pomiędzy {{NAZWASERWISU|Wikiboosem|link=tak}}, a czytającym lub ten modyfikującym tę książkę (strona główna) i jego podartykuły.
| Konsekwencje = Autor dołożył wszelkich starań, by informacje zawarte w podręczniku były poprawne, ale nie bierze na siebie odpowiedzialności karnej za sposób wykorzystania wiadomości zawartej w książce, a w przypadku wystąpieniu szkód lub naruszenia praw patentowych, nawet gdy {{NAZWASERWISU|link=tak}} lub autor książki zostanie powiadomiony, czytający nie może ubiegać się o odszkodowanie, a więc nie może być udzielona żadna rękojmia, czy też gwarancja.
}}}}
}}
== Szablony cytowań tematycznych ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Tt|{{s|Cytuj grę komputerową | tytuł {{=}} <nowiki>[[w:Mass Effect: Andromeda|Mass Effect: Andromeda]]</nowiki> | producent {{=}} <nowiki>[[BioWare]]</nowiki>|miejsce{{=}}<nowiki>[[w:Warszawa|Warszawa]]</nowiki> | wydawca {{=}} <nowiki>[[w:Electronic Arts|Electronic Arts Polska]]</nowiki> | data {{=}} 23.03.2017 | platforma {{=}} <nowiki>[[w:PlayStation 4|PlayStation 4]]</nowiki> | dokument {{=}} Leksykon: Kettowie – Archont | język {{=}} pl | cytat {{=}} Osobnik zwany archontem jest dowódcą sił kettów w gromadzie Helejosa. Choć jest rzadko widywany, według doniesień jego wizytom w obiektach należących do kettów towarzyszą pokazy szacunku połączonego ze strachem, egzekucje dysydentów i prezentacje cennej technologii Porzuconych.}}}}
| _1 = {{Cytuj grę komputerową | tytuł = [[w:Mass Effect: Andromeda|Mass Effect: Andromeda]] | producent = [[w:BioWare|BioWare]]| miejsce = [[w:Warszawa|Warszawa]] | wydawca = [[w:Electronic Arts|Electronic Arts Polska]] | data = 23.03.2017 | platforma = [[w:PlayStation 4|PlayStation 4]] | dokument = Leksykon: Kettowie – Archont|język=pl|cytat=Osobnik zwany archontem jest dowódcą sił kettów w gromadzie Helejosa. Choć jest rzadko widywany, według doniesień jego wizytom w obiektach należących do kettów towarzyszą pokazy szacunku połączonego ze strachem, egzekucje dysydentów i prezentacje cennej technologii Porzuconych.}}
| 2 = {{Tt|{{s|Cytuj książkę |autor {{=}} Anil Kumar Maini | tytuł {{=}} Digital Electronics: Principles, Devices and Applications | url {{=}} <nowiki>https://books.google.com/?id=NQSpNAEACAAJ&pg=PA28</nowiki> | rok {{=}} 2007 | wydawca {{=}} John Wiley and Sons | isbn {{=}} 978-0-470-03214-5 | strony {{=}} 28 | cytat {{=}} In addition, it defines codes for 33 nonprinting, mostly obsolete control characters that affect how the text is processed. | język {{=}} en }}}}
| _2 = {{Cytuj książkę | autor = Anil Kumar Maini | tytuł = Digital Electronics: Principles, Devices and Applications | url = https://books.google.com/?id=NQSpNAEACAAJ&pg=PA28 | rok = 2007 | wydawca = John Wiley and Sons | isbn = 978-0-470-03214-5 | strony = 28 | cytat = In addition, it defines codes for 33 nonprinting, mostly obsolete control characters that affect how the text is processed. | język = en }}
| 3 = {{Tt|{{s|Cytuj odcinek | tytuł {{=}} BBC-TV Presents: The 2008 World Snooker Championship Live at The Crucible | odcinek link {{=}} w:BBC Snooker World Championship coverage (2008) | serial {{=}} Wide World of Snooker | serial link {{=}} w:Wide World of Snooker (program telewizyjny) | autorzy {{=}} Prezenterzy: <nowiki>[[w:Dennis Taylor|Dennis Taylor]] </nowiki> and <nowiki>[[w:Clive Everton|Clive Everton]]</nowiki> | stacja {{=}} <nowiki>[[w:British Broadcasting Corporation|BBC]]</nowiki> | stacja2 {{=}} <nowiki>[[w:BBC Two|BBC Two]]</nowiki> | miasto {{=}} <nowiki>[[w:Sheffield|Sheffield]]</nowiki>, <nowiki>[[w:Anglia|Anglia]]</nowiki> | emisja {{=}} 27 kwietnia 2004 | minuta {{=}} 2:34 | transkrypcja url {{=}} <nowiki>http://bbc.com/transkrypcjaaudycji.html</nowiki> | data dostępu {{=}} 23 czerwca 2008 }}}}
| _3 = {{Cytuj odcinek | tytuł = BBC-TV Presents: The 2008 World Snooker Championship Live at The Crucible | odcinek link = w:BBC Snooker World Championship coverage (2008) | serial = Wide World of Snooker | serial link = w:Wide World of Snooker (program telewizyjny) | autorzy = Prezenterzy: [[w:Dennis Taylor|Dennis Taylor]] and [[w:Clive Everton|Clive Everton]] | stacja = [[w:British Broadcasting Corporation|BBC]] | stacja2 = [[w:BBC Two|BBC Two]] | miasto = [[w:Sheffield|Sheffield]], [[w:Anglia|Anglia]] |emisja = 27 kwietnia 2004 | minuta = 2:34 | transkrypcja url = http://bbc.com/transkrypcjaaudycji.html | data dostępu = 23 czerwca 2008 }}
| 4 = {{Tt|{{s|Cytuj pismo | tytuł {{=}} Binary Computer Codes and ASCII | autor {{=}} Ed Bukstein | czasopismo {{=}} Electronics World | rok {{=}} 1964 | miesiąc {{=}} 07 | wolumin {{=}} 72 | wydawca {{=}} Poptronix Inc. | strony {{=}} 28–29 | język {{=}} en | url {{=}} <nowiki>http://www.swtpc.com/mholley/ElectronicsWorld/Jul1964/EW_Jul1964.htm</nowiki>| data dostępu {{=}} 2016-05-22 }}}}
| _4 = {{Cytuj pismo | tytuł = Binary Computer Codes and ASCII | autor = Ed Bukstein | czasopismo = Electronics World | rok = 1964 | miesiąc = 07 | wolumin = 72 | wydawca = Poptronix Inc. | strony = 28–29 | język = en | url = http://www.swtpc.com/mholley/ElectronicsWorld/Jul1964/EW_Jul1964.htm | data dostępu = 2016-05-22 }}
| 5 = {{Tt|{{s|Cytuj stronę | url {{=}} <nowiki>http://sjp.pwn.pl/poradnia/haslo/b-alternatywa-b;2079.html</nowiki> | tytuł {{=}} alternatywa | autor {{=}} [[w:Mirosław Bańko|Mirosław Bańko]] | praca {{=}} Poradnia językowa | opublikowany {{=}} PWN | data {{=}} 2002 | data dostępu {{=}} 2016-10-14 | odn {{=}} {{s|odn/id|Bańko|2002}} }}}}
| _5 = {{Cytuj stronę | url = http://sjp.pwn.pl/poradnia/haslo/b-alternatywa-b;2079.html | tytuł = alternatywa | autor = [[w:Mirosław Bańko|Mirosław Bańko]] | praca = Poradnia językowa | opublikowany = PWN | data = 2002 | data dostępu = 2016-10-14 | odn = {{odn/id|Bańko|2002}} }}
| 6 = {{Tt|{{s|Cytuj | autor {{=}} Benoit Viollet, Fabrizio Andreelli, Sebastian B. Jørgensen, Christophe Perrin, Alain Geloen, Daisy Flamez, James Mu, Claudia Lenzner, Olivier Baud, Myriam Bennoun, Emmanuel Gomas, Gaël Nicolas, Jørgen F.P. Wojtaszewski, Axel Kahn, David Carling, Frans C. Schuit, Morris J. Birnbaum, Erik A. Richter, Rémy Burcelin, Sophie Vaulont | tytuł {{=}} The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity | data {{=}} 2003 | czasopismo {{=}} The Journal of Clinical Investigation | doi {{=}} 10.1172/JCI16567 | wolumin {{=}} 111 | numer {{=}} 1 | pmid {{=}} 12511592 | pmc {{=}} 151837| s {{=}} 91-98 }}}}
| _6 = {{Cytuj | autor = Benoit Viollet, Fabrizio Andreelli, Sebastian B. Jørgensen, Christophe Perrin, Alain Geloen, Daisy Flamez, James Mu, Claudia Lenzner, Olivier Baud, Myriam Bennoun, Emmanuel Gomas, Gaël Nicolas, Jørgen F.P. Wojtaszewski, Axel Kahn, David Carling, Frans C. Schuit, Morris J. Birnbaum, Erik A. Richter, Rémy Burcelin, Sophie Vaulont | tytuł = The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity | data = 2003 | czasopismo = The Journal of Clinical Investigation | doi = 10.1172/JCI16567 | wolumin = 111 | numer = 1 | pmid = 12511592 | pmc = 151837 | s = 91-98 }}
}}
== Szablony cytatów ==
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Cytat|Wpłynąłem na suchego przestwór oceanu;{{s|Br}}
Wóz nurza się w zieloność i jak łódka brodzi:{{s|Br}}
Śród fali łąk szumiących, śród kwiatów powodzi,{{s|Br}}
Omijam koralowe ostrowy burzanu.}}}}
| _1 = {{Cytat|Wpłynąłem na suchego przestwór oceanu;{{Br}}
Wóz nurza się w zieloność i jak łódka brodzi:{{Br}}
Śród fali łąk szumiących, śród kwiatów powodzi,{{Br}}
Omijam koralowe ostrowy burzanu.}}
| 2 = {{Pre|{{s|Cytat box
|cytat {{=}} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|źródło {{=}} <nowiki>[[w:Cyceron|Cyceron]]</nowiki>, ''De finibus bonorum et malorum''
|width {{=}} 40%
|align {{=}} right
}}}}
| _2 = {{Cytat box
|cytat = Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|źródło = [[w:Cyceron|Cyceron]], ''De finibus bonorum et malorum''
|width = 40%
|align = right
}}
| 3 = {{Pre|{{s|CytatD
|Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|<nowiki>[[w:Cyceron|Cyceron]]</nowiki>|De finibus bonorum et malorum
}}}}
| _3 = {{CytatD
|Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at risus. Quisque purus magna, auctor et, sagittis ac, posuere eu, lectus. Nam mattis, felis ut adipiscing.
|[[w:Cyceron|Cyceron]]|De finibus bonorum et malorum
}}
| 4 = {{Pre|{{s|CytatDłuższy|Nie można się oprzeć wrażeniu, że niektóre czynniki chciałyby widzieć Ligę przede wszystkim jako instrument, zwrócony przeciw t. zw. państwom totalnym. Uderzające jest, że te same czynniki chcą jakoby stotalizować życie międzynarodowe drogą tej samej Ligi Narodów. Wydaje mi się, że ta jaskrawa sprzeczność nie wymaga dalszych komentarzy.}}}}
| _4 = {{CytatDłuższy|
Nie można się oprzeć wrażeniu, że niektóre czynniki chciałyby widzieć Ligę przede wszystkim jako instrument, zwrócony przeciw t. zw. państwom totalnym. Uderzające jest, że te same czynniki chcą jakoby stotalizować życie międzynarodowe drogą tej samej Ligi Narodów. Wydaje mi się, że ta jaskrawa sprzeczność nie wymaga dalszych komentarzy.}}
}}
== Szablony tematyczne tekstowe ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Chem|C|n|H|2n + 2}}}} | _1 = {{Chem|C|n|H|2n + 2}}
| 2 = {{Tt|{{s|Chem2|H2C\dCH\sCH(CH3)2 + HCl → CH3\sCH2\sCCl(CH3)2 + CH3\sCHCl\sCH(CH3)2}}}} | _2 = {{Chem2|H2C\dCH\sCH(CH3)2 + HCl → CH3\sCH2\sCCl(CH3)2 + CH3\sCHCl\sCH(CH3)2}}
}}
== Szablony pudełkowe komunikatów informujących (mboksy) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Tt|{{s|Ambox|typ{{=}}wiadomość|tekst{{=}}typ{{=}}{{s|Un|wiadomość}} – informacje o artykule, jak {{s|s|Aktualne}} i {{s|s|W edycji}}.}}}}
| _1 = {{Ambox|typ=wiadomość|tekst=typ={{Un|wiadomość}} – informacje o artykule, jak {{S|Aktualne}} i {{S|W edycji}}.}}
| 2 = {{Tt|{{s|AmboxProsty|typ{{=}}pułapka|tekst{{=}}Użycie tej wartości nie jest dozwolone!}}}}
| _2 = {{AmboxProsty|typ=pułapka|tekst=Użycie tej wartości nie jest dozwolone!}}
| 3 = {{Tt|{{s|Tmbox|typ{{=}}poważny|tekst{{=}}<nowiki>'''</nowiki>typ{{=}}poważny<nowiki>'''</nowiki>{{s|Br}}Poważne problemy z artykułem/szablonem, takie, jak {{s|s|ek}}. Powinien być używany do informowania o błędnym wywołaniu jakiegoś szablonu wykorzystującego tmbox.}}}}
| _3 = {{Tmbox|typ=poważny|tekst='''typ=poważny'''{{Br}}Poważne problemy z artykułem/szablonem, takie, jak {{s|ek}}. Powinien być używany do informowania o błędnym wywołaniu jakiegoś szablonu wykorzystującego tmbox.}}
| 4 = {{Tt|{{s|Fmbox|typ{{=}}ostrzeżenie|tekst{{=}}typ{{=}}{{s|Un|ostrzeżenie}} – Systemowe ostrzeżenie.}}}}
| _4 = {{Fmbox|typ=ostrzeżenie|tekst=typ={{Un|ostrzeżenie}} – Systemowe ostrzeżenie.}}
| 5 = {{Tt|{{s|Ombox|typ{{=}}integruj|tekst{{=}}<nowiki>'''</nowiki>typ{{=}}integruj<nowiki>'''</nowiki>{{s|Br}}Artykuł musi zostać zintegrowany z innym. Wykorzystywany także do informacji o tłumaczeniu, źródle i wymaganym zintegrowaniu historii edycji.}}}}
| _5 = {{Ombox|typ=integruj|tekst='''typ=integruj'''{{Br}}Artykuł musi zostać zintegrowany z innym. Wykorzystywany także do informacji o tłumaczeniu, źródle i wymaganym zintegrowaniu historii edycji.}}
| 6 = {{Tt|{{s|Cmbox|typ{{=}}wiadomość|tekst{{=}}{{s|Parametr|typ|{{s|Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}}}
| _6 = {{Cmbox|typ=wiadomość|tekst={{Parametr|typ|{{Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}
| 7 = {{Tt|{{s|Imbox|typ{{=}}wiadomość|tekst{{=}}{{s|Parametr|typ|{{s|Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}}}
| _7 = {{Imbox|typ=wiadomość|tekst={{Parametr|typ|{{Un|wiadomość}}}} – Poważne problemy, jak: {{s|NPA}} i {{s|NPAfrgm}}.}}
| 8 = {{Tt|{{s|Mbox|typ{{=}}poważny|tekst{{=}}typ{{=}}{{s|Un|poważny}} – Poważne problemy, jak {{S|s|ek}} i {{s|s|NPA}}.}}}}
| _8 = {{Mbox|typ=poważny|tekst=typ={{Un|poważny}} – Poważne problemy, jak {{S|ek}} i {{S|NPA}}.}}
| 9 = {{Tt|{{s|Dmbox|grafika{{=}}{{s|ikona|info|25}}|tekst{{=}}Nie mylić z {{s|s|tmbox}}}}}}
| _9 = {{Dmbox|grafika={{ikona|info|25}}|tekst=Nie mylić z {{s|tmbox}}}}
| 10 = {{Tt|{{s|Mbox-strona|typ{{=}}notatki|tekst{{=}}Ta książka wymaga znajomości: {{s|lg|Struktury danych}}.}}}}
| _10 = {{Mbox-strona|typ=notatki|tekst=Ta książka wymaga znajomości: {{lg|Struktury danych}}.}}
}}
== Pudełka zbierające wiele elementów w jednej ramce ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Ramka|
{{s|Plik|plik{{=}}Water-charge-surface.png|rozmiar{{=}}100px|pozycja{{=}}lewo}}
{{s|Plik|plik{{=}}Water molecule 3D.svg|rozmiar{{=}}100px|pozycja{{=}}prawo}}
{{s|Plik|plik{{=}}Water molecule dimensions.png|rozmiar{{=}}200px}}
| Kolejno: rozkład ładunku elektrycznego dookoła cząsteczki wody, widok 3D, wymiary i kąty w cząsteczce wody.
| 250px
| right
}}}}
| _1 = {{Ramka|
{{Plik|plik=Water-charge-surface.png|rozmiar=100px|pozycja=lewo}}
{{Plik|plik=Water molecule 3D.svg|rozmiar=100px|pozycja=prawo}}
{{Plik|plik=Water molecule dimensions.png|rozmiar=200px}}
| Kolejno: rozkład ładunku elektrycznego dookoła cząsteczki wody, widok 3D, wymiary i kąty w cząsteczce wody.
| 250px
| right
}}
}}
== Inne pudełka komórkowe (tabelki) i ramkowe ({{Tag|div}}) - niesystemowe ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe|kolor1{{=}}#C0C0C0|kolor2{{=}}#FFFBF4|kolor3{{=}}#00FFFF|kolor4{{=}}#000080|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
|_1 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe|kolor1=#C0C0C0|kolor2=#FFFBF4|kolor3=#00FFFF|kolor4=#000080|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 2 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 1|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _2 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 1|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 3 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 2|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _3 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 2|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 4 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 3|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _4 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 3|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 5 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 4|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _5 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 4|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 6 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}} {{s|Pudełko komórkowe 5|grafika-bez-div{{=}}|styl{{=}}width: 100%|grafika{{=}}<nowiki>[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]</nowiki>|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}
}}}}
| _6 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 = {{Pudełko komórkowe 5|grafika-bez-div=|styl=width: 100%|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
| 7 = {{Tt|{{s|Pudełko ramkowe|kolor1{{=}}#C0C0C0|kolor2{{=}}#FFFBF4|kolor3{{=}}#00FFFF|kolor4{{=}}#000080|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _7 = {{Pudełko ramkowe|kolor1=#C0C0C0|kolor2=#FFFBF4|kolor3=#00FFFF|kolor4=#000080|grafika-bez-div=|styl=width: 100%;box-sizing:border-box;|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 8 = {{Tt|{{s|Pudełko ramkowe 1|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _8 = {{Pudełko ramkowe 1|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 9 = {{Tt|{{s|Pudełko ramkowe 2|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box||grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _9 = {{Pudełko ramkowe 2|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 10 = {{Tt|{{s|Pudełko ramkowe 3|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box||grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _10 = {{Pudełko ramkowe 3|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 11 = {{Tt|{{s|Pudełko ramkowe 4|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _11 = {{Pudełko ramkowe 4|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
| 12 = {{Tt|{{s|Pudełko ramkowe 5|grafika-bez-div{{=}}|styl{{=}}width: 100%;box-sizing:border-box|grafika{{=}}{{!((}}[[:File:Nuvola apps bookcase pastel.svg]]{{!}}40px{{!}}Link{{=}}Strona Główna{{))!}}|tytuł{{=}}Tytuł nagłówka|tekst{{=}}Tekst ramki}}}}
| _12 = {{Pudełko ramkowe 5|grafika-bez-div=|styl=width: 100%;box-sizing:border-box|grafika=[[File:Nuvola apps bookcase pastel.svg|40px|Link=Strona Główna]]|tytuł=Tytuł nagłówka|tekst=Tekst ramki}}
}}
== Bloki komórkowe (tabelki) i ramkowe ({{Tag|div}}) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|styl{{=}}width:100%|liczba wierszy{{=}}1|liczba kolumn{{=}}1
| komórka 1_1 {{=}}
{{s|Blok tabelowy|temat{{=}}1|tytuł{{=}}Kolor1}}
<nowiki>''</nowiki>To jest przykładowy tekst...<nowiki>''</nowiki>
{{s|Blok tabelowy/Zamknij}}
}}}}
| _1 = {{Tabela|styl=width:100%|liczba wierszy=1|liczba kolumn=1
| komórka 1_1 =
{{Blok tabelowy|temat=1|tytuł=Kolor1}}
''To jest przykładowy tekst...''
{{Blok tabelowy/Zamknij}}
}}
| 2 = {{Pre|{{s|Blok ramkowy|temat{{=}}1|tytuł{{=}}Kolor1|szerokość{{=}}auto|margines{{=}}0 5px}}
<nowiki>''</nowiki>To jest przykładowy tekst...<nowiki>''</nowiki>
{{s|Blok ramkowy/Zamknij}}}}
| _2 = {{Blok ramkowy|temat=1|tytuł=Kolor1|szerokość=auto|margines=0 5px}}
''To jest przykładowy tekst...''
{{Blok ramkowy/Zamknij}}
}}
== Szablony sekcji (formy komórkowe i ramkowe) ==
{{EfektKodów|kod-rozmiar=40%
| 1 = {{Pre|{{s|Tabela|liczba wierszy{{=}}0|liczba kolumn{{=}}1
| nagłówek 1 {{=}} {{s|Sekcja komórkowa
| tytuł {{=}} {{s|Span|styl{{=}}color:#1443C7|Warto zajrzeć}}
| grafika {{=}} HSCategory.svg
| treść {{=}} {{s|Strona główna/Warto zajrzeć}}
| łącze {{=}}
| id {{=}} Warto
}}}}}}
| _1 = {{Tabela|liczba wierszy=0|liczba kolumn=1
| nagłówek 1 = {{Sekcja komórkowa
| tytuł = {{Span|styl=color:#1443C7|Warto zajrzeć}}
| grafika = HSCategory.svg
| treść = {{Strona główna/Warto zajrzeć}}
| łącze =
| id = Warto
}}
}}
| 2 = {{Pre|{{s|Sekcja ramkowa
| tytuł {{=}} {{s|Span|styl{{=}}color:#1443C7|Warto zajrzeć}}
| grafika {{=}} HSCategory.svg
| treść {{=}} {{s|Strona główna/Warto zajrzeć}}
| łącze {{=}}
| id {{=}} Warto
}}}}
| _2 = {{Sekcja ramkowa
| tytuł = {{Span|styl=color:#1443C7|Warto zajrzeć}}
| grafika = HSCategory.svg
| treść = {{Strona główna/Warto zajrzeć}}
| łącze =
| id = Warto
}}
}}
== Ramki informujące ==
Przedstawia wszystkie pudełka informacyjne, do których wstawia się tekst ich zawartości.
=== Szablony do zastosowań ogólnych ===
{{EfektKodów
| 1 = {{Tt|{{s|Uwaga|Tekst ostrzeżenia}}}} | _1 = {{Uwaga|Tekst ostrzeżenia}}
| 2 = {{Tt|{{s|Porada|Tekst porady}}}} | _2 = {{Porada|Tekst porady}}
| 3 = {{Tt|{{s|Infobox|Tekst informacji}}}} | _3 = {{Infobox|Tekst informacji}}
| 4 = {{Tt|{{s|Info|Tekst informacji}}}} | _4 = {{Info|Tekst informacji}}
| 5 = {{Tt|{{s|Zapamiętaj|2=Co należy zapamiętać}}}} | _5 = {{Zapamiętaj|Co należy zapamiętać}}
| 6 = {{Tt|{{s|Definicja|Tekst definicji}}}} | _6 = {{Definicja|Tekst definicji}}
| 7 = {{Tt|{{s|Definicja2|Tekst definicji}}}} | _7 = {{Definicja2|Tekst definicji}}
| 8 = {{Tt|{{s|Definicja3|Tekst definicji}}}} | _8 = {{Definicja3|Tekst definicji}}
| 9 = {{Tt|{{s|Ćwiczenie|Tekst ćwiczenia}}}} | _9 = {{Ćwiczenie|Tekst ćwiczenia}}
| 10 = {{Tt|{{s|InfoRamka|Tekst ramki}}}} | _10 = {{InfoRamka|Tekst ramki}}
| 11 = {{Tt|{{s|InfoReguła|Tekst reguły}}}} | _11 =
{{InfoReguła|Tekst reguły}}
| 12 = {{Tt|{{s|Ważne informacje|symbol{{=}}Klepsydra.svg|Nagłówek informacji|Tekst ważnej informacji}}}}| _12 = {{Ważne informacje|symbol=Klepsydra.svg|Nagłówek informacji|Tekst ważnej informacji}}
| 13 = {{Tt|{{s|RightBox|Wyróżniony tekst z prawej strony{{s|Br}}Szerokość zależna od zawartości}}}} | _13 = {{RightBox|Wyróżniony tekst z prawej strony{{Br}}Szerokość zależna od zawartości}}
| 14 = {{Tt|{{s|BlueBox|Wyróżniony tekst z prawej strony{{s|Br}}Szerokość zależna od zawartości}}}} | _14 = {{BlueBox|Wyróżniony tekst z prawej strony{{Br}}Szerokość zależna od zawartości}}
}}
Uwaga: Jeżeli w jednym z parametrów pojawi się znak równości, zastępujemy go {{lpg|Odwołania znakowe SGML|encją}} {{Tt|&#64;}}, czyli: {{Tt|{{s|Porada|argument tekstowy &#64; szablonu}}}}, lub zastosować go przez szablon {{s|{{=}}}}, czyli: {{Tt|{{s|Porada|argument tekstowy {{s|{{=}}}} szablonu}}}}, albo zmieniamy treść, wg wzoru: zamiast {{Tt|{{s|Porada|argument}}}} piszemy {{Tt|{{s|Porada|1{{=}}argument}}}}.
=== Ramki powiadające ===
{{EfektKodów
| 1 = {{Tt|{{s|W skrócie|to bełkot}}}}
| _1 = {{W skrócie|to bełkot}}
| 2 = {{Tt|{{s|W skrócie|po pierwsze|po drugie|i po trzecie}}}}
| _2 = {{W skrócie|po pierwsze|po drugie|i po trzecie}}
}}
=== Szablony do zastosowań tworzenia ramek w oparciu o szablony uniwersalne ===
{{EfektKodów|kod-rozmiar=50%
| 1 = {{Pre|{{s|Uniwersalny szablon językowy
| kolor_tła {{=}} #f2fff2
| kolor_ramki {{=}} blue
| flaga {{=}} Flag of Poland.svg{{!}}border
| podpis_flagi {{=}} Język polski
| ikonka {{=}} Nuvola apps edu languages.svg
| podpis_ikonki {{=}} Dialog
| nazwa_szablonu {{=}} Dialog
| tytuł {{=}} Powitanie
| treść {{=}} <nowiki>''Cześć''</nowiki> – Hello
}}}}
| _1 = {{Uniwersalny szablon językowy
| kolor_tła = #f2fff2
| kolor_ramki = blue
| flaga = Flag of Poland.svg{{!}}border
| podpis_flagi = Język polski
| ikonka = Nuvola apps edu languages.svg
| podpis_ikonki = Dialog
| nazwa_szablonu = Dialog
| tytuł = Powitanie
| treść = ''Cześć'' – Hello
}}
}}
== Szablony do usuwania lub naprawiania albo diagnoz stron ==
Przedstawia szablony potrzebne do natychmiastowego usuwania stron oraz do naprawy lub ich usuwania.
=== Szablony do natychmiastowego usuwania stron lub do diagnozowania błędów ===
Szablony, które służą do usuwania stron, gdy ta strona będzie niepotrzebna lub ona narusza zasady polskiego {{NAZWASERWISU|po=a|link=tak}}.
==== Szablony do natychmiastowego usuwania artykułów ====
{{EfektKodów
| 1 = {{Tt|{{s|ek|powód}}}} i jego przekierowania: {{Tt|{{s|EK|powód}}}}{{•}} {{Tt|{{s|Delete|powód}}}}{{•}} {{Tt|{{s|Screenshot|powód}}}} (do zastosowań do rysunków)
| _1 = {{OpakujKategorieZeSortowaniem|{{ek|powód}}}}
| 2 = {{Tt|{{s|ek2|powód}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{ek2|powód}}}}
| 3 = {{Tt|{{s|Admin usuń}}}} - wynik w postaci tekstowej po działaniu szablonem {{Tt|{{s|Nowiki}}}}
| _3= {{Nowiki|{{Admin usuń}}}}
}}
==== Diagnozowanie błędów ====
{{EfektKodów
| 1 = {{Tt|{{s|#iferror:{{s|Błąd|Foo}} | {{s|Tak}} | {{s|Nie}} }}}}
|_1 = {{#iferror:{{Błąd|Foo}} | {{Tak}} | {{Nie}} }}
}}
=== Szablony potwierdzeń, oznaczające zgodę na tak lub nie, na jakieś operacje ===
{{EfektKodów
| 1 = {{Tt|{{s|Tak}}}} | _1 = {{Tak}}
| 2 = {{Tt|{{s|Nie}}}} | _2 = {{Nie}}
| 3 = {{Tt|{{s|Za}}}} | _3 = {{Za}}
| 4 = {{Tt|{{s|Przeciw}}}} | _4 = {{Przeciw}}
| 5 = {{Tt|{{s|Usunąć}}}} | _5 = {{Usunąć}}
| 6 = {{Tt|{{s|Załatwione}}}} | _6 = {{Załatwione}}
| 7 = {{Tt|{{s|Zostawić}}}} | _7 = {{Zostawić}}
| 8 = {{Tt|{{s|Zrobione}}}} i jego przekierowanie {{Tt|{{s|Done}}}} | _8 = {{Zrobione}}{{•}} {{Done}}
| 9 = {{Tt|{{s|Niezrobione}}}} | _9 = {{Niezrobione}}
| 10 = {{Tt|{{s|Niezałatwione}}}} i jego przekierowanie {{Tt|{{s|Brak}}}} | _10 = {{Niezałatwione}}{{•}} {{Brak}}
}}
=== Szablony {{lr|Poczekalnia|poczekalni}} (do naprawiania i usuwania stron w wyniku przeprowadzonej dyskusji) ===
{{EfektKodów
| 1 = {{Tt|{{s|SdU|artykuły}}}} i jego przekierowanie {{Tt|{{S|DoSkasowania}}}}
| _1 = {{OpakujKategorieZeSortowaniem|{{SdU|artykuły|nazwa przestrzeni nazw={{Np|(main)}}|typ jednostki=artykuł}}}}
| 2 = {{Tt|{{s|SdUwynik|usuwane}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{SdUwynik|usuwane|nazwij jednostką=tak|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|1=DNU|2=artykuł|3=podstrona={{Czas|Y:m:d}}:Strona główna podręcznika/Nazwa podstrony}}}}
| _3 = {{OpakujKategorieZeSortowaniem|{{DNU|artykuł|podstrona={{Czas|Y:m:d}}:Strona główna podręcznika/Nazwa podstrony|dokumentacja=tak|nazwa przestrzeni nazw=(main)|nazwij jednostką=tak}}}}
| 4 = {{Tt|{{s|Kasowanie po przeniesieniu|{{Czas|d.m.Y}}}}}} i jego przekierowanie {{Tt|{{s|Kpp|{{Czas|d.m.Y}}}}}}
| _4 = {{OpakujKategorieZeSortowaniem|{{Kasowanie po przeniesieniu|{{Czas|d.m.Y}}|typ jednostki=artykuł}}}}
| 5 = {{Tt|{{s|DNU|usuwane|zakończenie{{=}}2023-10-06|podstrona{{=}}Wikibooks:Poczekalnia/artykuły/2023:10:06:Strona główna podręcznika/Nazwa podstrony}}}}
| _5 = {{OpakujKategorieZeSortowaniem|{{DNU|usuwane|zakończenie=2023-10-06|podstrona=Wikibooks:Poczekalnia/artykuły/2023:10:06:Strona główna podręcznika/Nazwa podstrony|dokumentacja=tak|typ jednostki=podręcznik}}}}
| 6 = {{Tt|{{s|DNUinfo|Fizyka wyższa|artykuł}}}}
|_6 = {{DNUinfo|Fizyka wyższa|artykuł|typ jednostki=strona główna użytkownika}}
| 7 = {{Tt|{{s|DNUinfo|Fizyka wyższa|2018:11:08|artykuł|tak}}}}
| _7 = {{DNUinfo|Fizyka wyższa|2018:11:08|artykuł|tak|typ jednostki=strona główna użytkownika}}
| 8 = {{Tt|{{s|DNU/info|Fizyka wyższa|artykuł}}}}
|_8 = {{DNU/info|Fizyka wyższa|artykuł|typ jednostki=strona główna użytkownika}}
| 9 = {{Tt|{{s|DNU/info|Fizyka wyższa|2018:11:08|artykuł|tak}}}}
|_9 = {{DNU/info|Fizyka wyższa|2018:11:08|artykuł|tak|typ jednostki=strona główna użytkownika}}
| 10 = {{Tt|{{s|LnDNU|Fizyka wyższa|rezultat{{=}}usuwane}}}}
| _10 = {{OpakujKategorieZeSortowaniem|{{LnDNU|Fizyka wyższa|rezultat=usuwane|nazwa przestrzeni nazw=Project|nazwa jednostki=Poczekalnia/artykuły/2018:11:08:Fizyka wyższa}}}}
| 11 = {{Tt|{{s|KSdU|strona{{=}}Aneks/Nazwy aminokwasów|nazwa{{=}}Nazwy aminokwasów}}}}
| _11 = {{KSdU|strona=Aneks/Nazwy aminokwasów|nazwa=Nazwy aminokwasów}}
| 12 ={{Tabela nawigacyjna|tytuł=Szablon: {{s|SDU}}, z dodanymi przykładowymi archiwami|spis={{Pre|
{{s|SDU
|naprawa{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/1{{!}}Archiwum 1{{))!}}}} (11 lis 2005 – 23 wrz 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/2{{!}}Archiwum 2{{))!}}}} (20 lis 2006 – 11 gru 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/naprawa/3{{!}}Archiwum 3{{))!}}}} (22 sty 2009 – 31 gru 2009)}}}}
|prowokacje{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/1{{!}}Archiwum 1{{))!}}}} (12 gru 2005 – 31 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/2{{!}}Archiwum 2{{))!}}}} (1 lip 2006 – 17 lis 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/3{{!}}Archiwum 3{{))!}}}} (19 lis 2008 – 29 gru 2009)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/prowokacje/4{{!}}Archiwum 4{{))!}}}} (1 sty 2010 – 24 mar 2011)}}}}
|artykuły{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/1{{!}}Archiwum 1{{))!}}}} (30 sty 2006 – 29 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/2{{!}}Archiwum 2{{))!}}}} (30 sie 2006 – 15 lis 2008)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/3{{!}}Archiwum 3{{))!}}}} (16 lis 2008 – 29 gru 2009)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/4{{!}}Archiwum 4{{))!}}}} (29 gru 2009 – 23 mar 2011)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/artykuły/5{{!}}Archiwum 5{{))!}}}} (30 mar 2011 – 30 gru 2011)}}}}
|kwestie techniczne{{=}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/kwestie techniczne/1{{!}}Archiwum 1{{))!}}}} (19 paź 2005 – 27 sie 2006)}}}}
{{s|Wiersz|{{s|Komórka|{{Nowiki|{{!((}}Wikibooks:Poczekalnia/archiwa/kwestie techniczne/2{{!}}Archiwum 2{{))!}}}} (28 sie 2006 – 14 lis 2008)}}}}
}}}}}}
|_12={{OpakujKategorieZeSortowaniem|{{SDU
|naprawa=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/1|Archiwum 1]] (11 lis 2005 – 23 wrz 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/2|Archiwum 2]] (20 lis 2006 – 11 gru 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/naprawa/3|Archiwum 3]] (22 sty 2009 – 31 gru 2009)}}}}
|prowokacje=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/1|Archiwum 1]] (12 gru 2005 – 31 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/2|Archiwum 2]] (1 lip 2006 – 17 lis 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/3|Archiwum 3]] (19 lis 2008 – 29 gru 2009)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/prowokacje/4|Archiwum 4]] (1 sty 2010 – 24 mar 2011)}}}}
|artykuły=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/1|Archiwum 1]] (30 sty 2006 – 29 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/2|Archiwum 2]] (30 sie 2006 – 15 lis 2008)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/3|Archiwum 3]] (16 lis 2008 – 29 gru 2009)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/4|Archiwum 4]] (29 gru 2009 – 23 mar 2011)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/artykuły/5|Archiwum 5]] (30 mar 2011 – 30 gru 2011)}}}}
|kwestie techniczne=
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/kwestie techniczne/1|Archiwum 1]] (19 paź 2005 – 27 sie 2006)}}}}
{{wiersz|{{komórka|[[Wikibooks:Poczekalnia/archiwa/kwestie techniczne/2|Archiwum 2]] (28 sie 2006 – 14 lis 2008)}}
}}}}}}
| 13 = {{Tt|{{s|SDU/Archiwum}}}}
| _13={{OpakujKategorieZeSortowaniem|{{SDU/Archiwum}}}}
}}
== Ikony kompletności ==
{{EfektKodów
| 1 = {{Tt|{{S|Etapy}}}}
* ''Zobacz {{lr2|Etapy rozwoju książek}}.''
| _1 = {{Etapy}}
| 2 = {{Tt|{{s|Etapy-junior}}}}
* ''Zobacz {{lr2|Etapy rozwoju książek}}.''
| _2 = {{Etapy-junior}}
| 3 = {{Tt|{{s|Kompletność|0%|04.11.2021}}}}
| _3 = {{Kompletność|0%|04.11.2021}}
| 4 = {{Tt|{{s|Kompletność|25%|04.11.2021}}}}
| _4 = {{Kompletność|25%|04.11.2021}}
| 5 = {{Tt|{{s|Kompletność|50%|04.11.2021}}}}
| _5 = {{Kompletność|50%|04.11.2021}}
| 6 = {{Tt|{{s|Kompletność|75%|04.11.2021}}}}
| _6 = {{Kompletność|75%|04.11.2021}}
| 7 = {{Tt|{{s|Kompletność|100%|04.11.2021}}}}
| _7 = {{Kompletność|100%|04.11.2021}}
| 8 = {{Tt|{{s|Kompletność|2-3|04.11.2021}}}}
| _8 = {{Kompletność|2-3|04.11.2021}}
| 9 = {{Tt|{{s|Kompletność|030|04.11.2021}}}}
| _9 = {{Kompletność|030|04.11.2021}}
| 10 = {{Tt|{{s|Kompletność junior|0|04.11.2021}}}}
| _10 = {{Kompletność junior|0|04.11.2021}}
| 11 = {{Tt|{{s|Kompletność junior|1|04.11.2021}}}}
| _11 = {{Kompletność junior|1|04.11.2021}}
| 12 = {{Tt|{{s|Kompletność junior|2|04.11.2021}}}}
| _12 = {{Kompletność junior|2|04.11.2021}}
| 13 = {{Tt|{{s|Kompletność junior|3|04.11.2021}}}}
| _13 = {{Kompletność junior|3|04.11.2021}}
| 14 = {{Tt|{{s|Książka|Fale|0%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _14 = {{Książka|Fale|0%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 15 = {{Tt|{{s|Książka|Fale|25%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _15 = {{Książka|Fale|25%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 16 = {{Tt|{{s|Książka|Fale|50%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _16 = {{Książka|Fale|50%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 17 = {{Tt|{{s|Książka|Fale|75%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _17 = {{Książka|Fale|75%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 18 = {{Tt|{{s|Książka|Fale|100%|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _18 = {{Książka|Fale|100%|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 19 = {{Tt|{{s|Książka|Fale|2-3|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _19 = {{Książka|Fale|2-3|04.11.2021|książka jest źródłem wiadomości o falach.}}
| 20 = {{Tt|{{s|Książka|Fale|030|04.11.2021|książka jest źródłem wiadomości o falach.}}}}
| _20 = {{Książka|Fale|030|04.11.2021|książka jest źródłem wiadomości o falach.}}
}}
== Nowe i wyróżnione podręczniki podręczniki miesiąca ==
Przedstawia podręczniki nowe i wyróżnione podręczniki miesiąca w wyniku przeprowadzonego głosowania.
=== Nowe podręczniki miesiąca ===
{{EfektKodów
| 1 = {{Tt|{{s|NPM}}}}
| _1 = {{OpakujKategorieZeSortowaniem|{{NPM|nazwa przestrzeni nazw=(main)}}}}
| 2 = {{Tt|{{s|Zwycięzca NPM}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{Zwycięzca NPM|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|Zwycięzca NPM krótki}}}}
|_3 = {{OpakujKategorieZeSortowaniem|{{Zwycięzca NPM krótki|nazwa przestrzeni nazw=(main)}}}}
}}
Stare wyróżnienia (patrz: {{lru|Nowy podręcznik miesiąca#Nowe podręczniki miesiąca w latach 2005 - 2006}} i {{lru|Nowy podręcznik miesiąca#Podręczniki uznane za "wkład miesiąca" w latach 2006 - 2007}}), a kategoria: {{lk2|Nowe podręczniki miesiąca}}, a je wszystko w postaci strony zbiorczej: {{ls2|Nowe podręczniki miesiąca/Zwycięzca}}.
=== Wyróżnione podręczniki miesiąca===
{{EfektKodów
| 1 = {{DivLinia}}
* Umieszczamy w linkach w identyfikatorze,
* Używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks.
* Przykład: {{Tt|{{s|Link FA|de|linia{{=}}tak}}}}, z parametrem: {{Parametr|linia|tak}}, lub bez niego w: {{Tt|(w sekcji interwiki)}}.
| _1 = {{Link FA|de|linia=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mechanika kwantowa}} - tutaj jest umieszczony w linii, ale podobnie jest sekcji interwiki w identyfikatorze
| 2 = {{Tt|{{s|WM|w czerwcu 2006|„''Wkład miesiąca czerwca 2006 roku''”}}}}
| _2 = {{OpakujKategorieZeSortowaniem|{{WM|w czerwcu 2006|„''Wkład miesiąca czerwca 2006 roku''”|nazwa przestrzeni nazw=(main)}}}}
| 3 = {{Tt|{{s|WM/Info|wrzesień|2006}}}}
| _3 = {{OpakujKategorieZeSortowaniem|{{WM/Info|wrzesień|2006|nazwa przestrzeni nazw=(main)}}}}
| 4 = {{Tt|{{s|WM/Info krótkie|wrzesień|2006}}}}
|_4 = {{OpakujKategorieZeSortowaniem|{{WM/Info krótkie|wrzesień|2006|nazwa przestrzeni nazw=}}}}
| 5 = {{Tt|{{s|WM/Zegar|start{{=}}1 marca 2007|stop{{=}}8 marca 2007}}}}
|_5 = {{WM/Zegar|start=1 marca 2007|stop=8 marca 2007}}
}}
Kategoria wszystkich wyróżnień: {{lk2|Wyróżnienia książek miesiąca}}, a je wszystko w postaci strony zbiorczej: {{ls2|Wyróżnienia książek miesiąca/Wyróżniony}}.
{{BrClear}}
<noinclude>{{Kategoria|Wizualne opisy techniczne szablonów}}</noinclude>
7e7nwr3kn0uk04i3mnwzm0mugdsq6ec
Wikijunior:Języki/Rosyjski
104
14450
551892
548752
2026-08-16T01:58:21Z
Persino
2851
551892
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Rosyjski to jeden z najpopularniejszych języków na świecie. Dla 145 milionów ludzi jest to język, którego nauczyli się w domu; poza tym około 110 milionów ludzi nauczyło się go jako języka obcego.
{{Plik|plik=Russian_language_status_and_proficiency_in_the_World.svg|auto=tak,40;0|opis=mapa państw, gdzie mówi się po rosyjsku}}
Oczywiście po rosyjsku mówi się w Rosji, ale nie tylko. Do Związku Radzieckiego należało kiedyś wiele państw i do dziś ludzie mówią tam po rosyjsku.
== Jaka jest historia tego języka? ==
Rosyjski to język słowiański, podobnie jak polski czy czeski. Dlatego w brzmieniu jest podobny do polskiego i nawet jeśli nie znamy rosyjskiego, możemy czasem zrozumieć ludzi rozmawiających ze sobą po rosyjsku.
== Jak zapisuje się ten język? ==
Rosjanie używają innego systemu pisma, niż w języku polskim czy angielskim. Nazywa się go cyrylickim, od mnichów Cyryla i Metodego, którzy wymyślili dla Słowian pismo podobne do pisma greckiego.
{{Plik|plik=Cyrillic.russian.script.year.1918.png|auto=tak,60;0|opis=Rosyjski alfabet}}
== Jakie dzieła powstały w tym języku? ==
Rosjanie stworzyli dużo pięknych baśni i filmów animowanych. Wśród nich między innymi ''[[w:Wilk i Zając|Wilka i Zająca]]'', bajkę, którą kiedyś znało prawie każde dziecko w Polsce.
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot !! Wymowa !! Znaczenie !! Opis
|-
| Привет! || [priwjét] || Cześć || nieformalne powitanie do znajomego
|-
| Здравствуйте || [zdrástwujtie] || Dzień dobry / witajcie || formalne przywitanie do obcych
|-
| Как дела? || [kak diełá] || Jak leci? || nieformalne pytanie o samopoczucie
|-
| Пока, пока! || [paká paká] || Pa pa! || nieformalne pożegnanie
|-
| До свидания || [da swidánija] || Do widzenia || standardowe pożegnanie
|-
| Пожалуйста || [pażálsta] || Proszę || forma grzecznościowa
|-
| Спасибо || [spasíba] || Dziękuję || standardowe podziękowanie
|-
| Извините || [izwinítie] || Przepraszam || formalne przeprosiny do obcych
|-
| Как тебя зовут? || [kak tiebjá zawút] || Jak się nazywasz? || pytanie nieformalne
|-
| Меня зовут ... || [mienjá zawút ...] || Nazywam się… || przedstawianie się
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
2y32plzgbc203n0negbxsmz9jcmwde1
551912
551892
2026-08-16T02:53:03Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551912
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Rosyjski to jeden z najpopularniejszych języków na świecie. Dla 145 milionów ludzi jest to język, którego nauczyli się w domu; poza tym około 110 milionów ludzi nauczyło się go jako języka obcego.
{{Plik|plik=Russian_language_status_and_proficiency_in_the_World.svg|auto=tak,40;0|opis=Mapa państw, gdzie mówi się po rosyjsku}}
Oczywiście po rosyjsku mówi się w Rosji, ale nie tylko. Do Związku Radzieckiego należało kiedyś wiele państw i do dziś ludzie mówią tam po rosyjsku.
== Jaka jest historia tego języka? ==
Rosyjski to język słowiański, podobnie jak polski czy czeski. Dlatego w brzmieniu jest podobny do polskiego i nawet jeśli nie znamy rosyjskiego, możemy czasem zrozumieć ludzi rozmawiających ze sobą po rosyjsku.
== Jak zapisuje się ten język? ==
Rosjanie używają innego systemu pisma, niż w języku polskim czy angielskim. Nazywa się go cyrylickim, od mnichów Cyryla i Metodego, którzy wymyślili dla Słowian pismo podobne do pisma greckiego.
{{Plik|plik=Cyrillic.russian.script.year.1918.png|auto=tak,60;0|opis=Rosyjski alfabet}}
== Jakie dzieła powstały w tym języku? ==
Rosjanie stworzyli dużo pięknych baśni i filmów animowanych. Wśród nich między innymi ''[[w:Wilk i Zając|Wilka i Zająca]]'', bajkę, którą kiedyś znało prawie każde dziecko w Polsce.
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot !! Wymowa !! Znaczenie !! Opis
|-
| Привет! || [priwjét] || Cześć || nieformalne powitanie do znajomego
|-
| Здравствуйте || [zdrástwujtie] || Dzień dobry / witajcie || formalne przywitanie do obcych
|-
| Как дела? || [kak diełá] || Jak leci? || nieformalne pytanie o samopoczucie
|-
| Пока, пока! || [paká paká] || Pa pa! || nieformalne pożegnanie
|-
| До свидания || [da swidánija] || Do widzenia || standardowe pożegnanie
|-
| Пожалуйста || [pażálsta] || Proszę || forma grzecznościowa
|-
| Спасибо || [spasíba] || Dziękuję || standardowe podziękowanie
|-
| Извините || [izwinítie] || Przepraszam || formalne przeprosiny do obcych
|-
| Как тебя зовут? || [kak tiebjá zawút] || Jak się nazywasz? || pytanie nieformalne
|-
| Меня зовут ... || [mienjá zawút ...] || Nazywam się… || przedstawianie się
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
5n14ue1231kzoairhfldlcilxfuz9ef
Wikijunior:Języki/Angielski
104
15750
551893
548755
2026-08-16T01:59:08Z
Persino
2851
551893
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie się mówi w tym języku? ==
Język angielski występuje na całym świecie. Jako język urzędowy występuje w Wielkiej Brytanii, w Irlandii, w Stanach Zjednoczonych, w Kanadzie, w Australii i na Nowej Zelandii.
{{Plik|plik=Anglospeak (subnational version).svg|auto=tak,40;0|opis=mapa państw, gdzie mówi się po angielsku}}
Angielski jest także najbardziej rozpowszechnionym językiem "międzynarodowym". Jest używany w dyplomacji, kontaktach biznesowych i na konferencjach naukowych. Jest to także jeden z najczęściej używanych języków w Internecie.
== Jaka jest historia tego języka? ==
Język angielski należy do grupy języków germańskich, podobnie jak niemiecki i języki skandynawskie. Zawiera także wiele zapożyczeń z języków romańskich, głównie francuskiego i łaciny.
W starożytności i średniowieczu Wyspy Brytyjskie były kilkakrotnie podbijane i zasiedlane; każdy z tych podbojów wywarł wpływ na obecny kształt narodów brytyjskich i ich języków.
* Najdawniejszymi mieszkańcami Wysp Brytyjskich byli Celtowie. Około 400 roku n.e, u schyłku Cesarstwa Rzymskiego, większość terenów Brytanii została podbita przez germańskie plemiona Anglosasów, a Celtowie zostali zepchnięci na północne i zachodnie krańce Wysp. Celtyckie pochodzenie mają obecne języki: irlandzki, szkocki i walijski. W języku angielskim pozostało bardzo niewiele rdzennie celtyckich słów, głównie nazwy niektórych rzek i miejscowości.
* Anglosasi mówili językiem staro-angielskim, silnie zbliżonym do innych języków germańskich i niepodobnym do obecnego angielskiego. Około 600 roku n.e. przyjęli chrześcijaństwo, w wyniku czego przejęli wiele słów z łaciny i greki. Między rokiem 800 a 1000 n.e miało miejsce wiele najazdów Wikingów. Wikingowie mówili językiem nordyckim, podobnym do obecnego norweskiego i duńskiego. Anglosasi zapożyczyli od nich wiele słów, głównie dotyczących życia codziennego i walki, np. horse (koń), knife (nóż).
* W 1066 r.n.e. Anglię podbili Normanowie pod wodzą Wilhelma Zdobywcy. Byli to Skandynawowie osiedli w Normandii (na północy Francji), mówiący językiem normańskim zbliżonym do staro-francuskiego. Wilhelm Zdobywca został królem, a Normanowie objęli najwyższe urzędy w państwie. Zajęli się handlem, sądownictwem, utworzyli nową arystokrację. Z ich języka pochodzi większość słów używanych do tej pory w tych dziedzinach, m.in. castle (zamek), royal (królewski), prince (książę), a także merchant (kupiec) i money (pieniądze).
== Jak zapisuje się ten język? ==
Język angielski zapisuje się przy użyciu alfabetu łacińskiego, podobnie jak większość języków europejskich (w tym polski).
Alfabet używany w języku angielskim składa się z 26 liter. Tekst zapisuje się od lewej strony do prawej.
== Jakie dzieła powstały w tym języku? ==
=== Literatura dziecięca ===
Do klasyki literatury dziecięcej należą: ''Alicja w Krainie Czarów'' Lewisa Carrolla, ''Przygody Piotrusia Pana'' Jamesa Matthew Barrie'go, oraz oczywiście ''Kubuś Puchatek'' Alana Alexandra Milne.
=== Klasyka literatury ===
Najbardziej znanym pisarzem anglojęzycznym jest William Shakespeare, autor kilkudziesięciu sztuk teatralnych (m.in. ''Hamlet'', ''Makbet'' oraz ''Romeo i Julia'') i ponad stu sonetów.
Słynni pisarze to Charles Dickens (''Oliver Twist''), Jane Austen (''Rozważna i romantyczna'', ''Duma i uprzedzenie''), James Joyce (''Ulisses''), Robert Byron (''The station''), Jonathan Swift (''Podróże Guliwera'').
== Kilka podstawowych zwrotów w tym języku ==
{| class="wikitable"
! Angielski
! Wymowa (PL)
! Polski
|-
| Hello
| heloł
| Cześć
|-
| Good morning
| gud mornin
| Dzień dobry (do 12:00)
|-
| Good afternoon
| gud afternun
| Dzień dobry (12:00–18:00)
|-
| Good evening
| gud iwnin
| Dobry wieczór
|-
| Good‑bye
| gud baj
| Do widzenia
|-
| Good night
| gud najt
| Dobranoc
|-
| What is your name?
| łot yz jor nejm
| Jak się nazywasz?
|-
| My name is...
| maj nejm yz...
| Nazywam się...
|-
| How are you?
| hau ar ju
| Jak się masz?
|-
| I'm fine, thanks.
| ajm fajn, fanks
| Mam się dobrze, dziękuję.
|-
| Where are you from?
| łer ar ju from
| Skąd pochodzisz?
|-
| I'm from...
| ajm from...
| Jestem z...
|-
| What time is it?
| łot tajm yz yt
| Która jest godzina?
|-
| It is ... o'clock
| yt yz ... e klok
| Jest równo...
|-
| It is seven past two
| yt yz sewen past tu
| Jest siedem minut po drugiej.
|-
| It is four to one
| yt yz for tu łan
| Jest cztery minuty do pierwszej.
|-
| How old are you?
| hau old ar ju
| Ile masz lat?
|}
=== Liczby ===
{| class="wikitable"
! Angielski
! Wymowa (PL)
! Polski
|-
| One
| łan
| jeden
|-
| Two
| tu
| dwa
|-
| Three
| fri
| trzy
|-
| Four
| for
| cztery
|-
| Five
| fajw
| pięć
|-
| Six
| syks
| sześć
|-
| Seven
| sewen
| siedem
|-
| Eight
| ejt
| osiem
|-
| Nine
| najn
| dziewięć
|-
| Ten
| ten
| dziesięć
|-
| Eleven
| ilewen
| jedenaście
|-
| Twelve
| tłelw
| dwanaście
|}
=== Niektóre kolory ===
{| class="wikitable"
! Angielski
! Wymowa (PL)
! Polski
|-
| Green
| grin
| zielony
|-
| Pink
| pynk
| różowy
|-
| Blue
| blu
| niebieski
|-
| Yellow
| jelou
| żółty
|-
| Red
| red
| czerwony
|-
| Black
| blak
| czarny
|-
| White
| łajt
| biały
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
iu8hlrij7b8aauhnuiimbuwhld8s6oy
551907
551893
2026-08-16T02:50:31Z
Persino
2851
/* Gdzie się mówi w tym języku? */
551907
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie się mówi w tym języku? ==
Język angielski występuje na całym świecie. Jako język urzędowy występuje w Wielkiej Brytanii, w Irlandii, w Stanach Zjednoczonych, w Kanadzie, w Australii i na Nowej Zelandii.
{{Plik|plik=Anglospeak (subnational version).svg|auto=tak,40;0|opis=Mapa państw, gdzie mówi się po angielsku}}
Angielski jest także najbardziej rozpowszechnionym językiem "międzynarodowym". Jest używany w dyplomacji, kontaktach biznesowych i na konferencjach naukowych. Jest to także jeden z najczęściej używanych języków w Internecie.
== Jaka jest historia tego języka? ==
Język angielski należy do grupy języków germańskich, podobnie jak niemiecki i języki skandynawskie. Zawiera także wiele zapożyczeń z języków romańskich, głównie francuskiego i łaciny.
W starożytności i średniowieczu Wyspy Brytyjskie były kilkakrotnie podbijane i zasiedlane; każdy z tych podbojów wywarł wpływ na obecny kształt narodów brytyjskich i ich języków.
* Najdawniejszymi mieszkańcami Wysp Brytyjskich byli Celtowie. Około 400 roku n.e, u schyłku Cesarstwa Rzymskiego, większość terenów Brytanii została podbita przez germańskie plemiona Anglosasów, a Celtowie zostali zepchnięci na północne i zachodnie krańce Wysp. Celtyckie pochodzenie mają obecne języki: irlandzki, szkocki i walijski. W języku angielskim pozostało bardzo niewiele rdzennie celtyckich słów, głównie nazwy niektórych rzek i miejscowości.
* Anglosasi mówili językiem staro-angielskim, silnie zbliżonym do innych języków germańskich i niepodobnym do obecnego angielskiego. Około 600 roku n.e. przyjęli chrześcijaństwo, w wyniku czego przejęli wiele słów z łaciny i greki. Między rokiem 800 a 1000 n.e miało miejsce wiele najazdów Wikingów. Wikingowie mówili językiem nordyckim, podobnym do obecnego norweskiego i duńskiego. Anglosasi zapożyczyli od nich wiele słów, głównie dotyczących życia codziennego i walki, np. horse (koń), knife (nóż).
* W 1066 r.n.e. Anglię podbili Normanowie pod wodzą Wilhelma Zdobywcy. Byli to Skandynawowie osiedli w Normandii (na północy Francji), mówiący językiem normańskim zbliżonym do staro-francuskiego. Wilhelm Zdobywca został królem, a Normanowie objęli najwyższe urzędy w państwie. Zajęli się handlem, sądownictwem, utworzyli nową arystokrację. Z ich języka pochodzi większość słów używanych do tej pory w tych dziedzinach, m.in. castle (zamek), royal (królewski), prince (książę), a także merchant (kupiec) i money (pieniądze).
== Jak zapisuje się ten język? ==
Język angielski zapisuje się przy użyciu alfabetu łacińskiego, podobnie jak większość języków europejskich (w tym polski).
Alfabet używany w języku angielskim składa się z 26 liter. Tekst zapisuje się od lewej strony do prawej.
== Jakie dzieła powstały w tym języku? ==
=== Literatura dziecięca ===
Do klasyki literatury dziecięcej należą: ''Alicja w Krainie Czarów'' Lewisa Carrolla, ''Przygody Piotrusia Pana'' Jamesa Matthew Barrie'go, oraz oczywiście ''Kubuś Puchatek'' Alana Alexandra Milne.
=== Klasyka literatury ===
Najbardziej znanym pisarzem anglojęzycznym jest William Shakespeare, autor kilkudziesięciu sztuk teatralnych (m.in. ''Hamlet'', ''Makbet'' oraz ''Romeo i Julia'') i ponad stu sonetów.
Słynni pisarze to Charles Dickens (''Oliver Twist''), Jane Austen (''Rozważna i romantyczna'', ''Duma i uprzedzenie''), James Joyce (''Ulisses''), Robert Byron (''The station''), Jonathan Swift (''Podróże Guliwera'').
== Kilka podstawowych zwrotów w tym języku ==
{| class="wikitable"
! Angielski
! Wymowa (PL)
! Polski
|-
| Hello
| heloł
| Cześć
|-
| Good morning
| gud mornin
| Dzień dobry (do 12:00)
|-
| Good afternoon
| gud afternun
| Dzień dobry (12:00–18:00)
|-
| Good evening
| gud iwnin
| Dobry wieczór
|-
| Good‑bye
| gud baj
| Do widzenia
|-
| Good night
| gud najt
| Dobranoc
|-
| What is your name?
| łot yz jor nejm
| Jak się nazywasz?
|-
| My name is...
| maj nejm yz...
| Nazywam się...
|-
| How are you?
| hau ar ju
| Jak się masz?
|-
| I'm fine, thanks.
| ajm fajn, fanks
| Mam się dobrze, dziękuję.
|-
| Where are you from?
| łer ar ju from
| Skąd pochodzisz?
|-
| I'm from...
| ajm from...
| Jestem z...
|-
| What time is it?
| łot tajm yz yt
| Która jest godzina?
|-
| It is ... o'clock
| yt yz ... e klok
| Jest równo...
|-
| It is seven past two
| yt yz sewen past tu
| Jest siedem minut po drugiej.
|-
| It is four to one
| yt yz for tu łan
| Jest cztery minuty do pierwszej.
|-
| How old are you?
| hau old ar ju
| Ile masz lat?
|}
=== Liczby ===
{| class="wikitable"
! Angielski
! Wymowa (PL)
! Polski
|-
| One
| łan
| jeden
|-
| Two
| tu
| dwa
|-
| Three
| fri
| trzy
|-
| Four
| for
| cztery
|-
| Five
| fajw
| pięć
|-
| Six
| syks
| sześć
|-
| Seven
| sewen
| siedem
|-
| Eight
| ejt
| osiem
|-
| Nine
| najn
| dziewięć
|-
| Ten
| ten
| dziesięć
|-
| Eleven
| ilewen
| jedenaście
|-
| Twelve
| tłelw
| dwanaście
|}
=== Niektóre kolory ===
{| class="wikitable"
! Angielski
! Wymowa (PL)
! Polski
|-
| Green
| grin
| zielony
|-
| Pink
| pynk
| różowy
|-
| Blue
| blu
| niebieski
|-
| Yellow
| jelou
| żółty
|-
| Red
| red
| czerwony
|-
| Black
| blak
| czarny
|-
| White
| łajt
| biały
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
qo8o8nr1ti2rqyatyeinzshpcxfoyk0
Wikijunior:Języki/Niemiecki
104
15792
551902
548756
2026-08-16T02:03:56Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551902
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Język niemiecki jest językiem używanym w Europie: w Niemczech i w Austrii jako jedyny język urzędowy, a także w w Belgii, w Szwajcarii i w Liechtensteinie.
{{Plik|plik=Legal status of German in the world.svg|auto=tak,40;0|opis=mapa państw i społeczności, gdzie mówi się po niemiecku}}
==Jaka jest historia tego języka?==
Język ten należy do grupy germańskiej, czyli jest krewnym na przykład szwedzkiego oraz angielskiego.
Co ciekawe, bardzo dużo słów w języku polskim, zwłaszcza dotyczących rzemiosła i techniki, pochodzi z niemieckiego. "Kosztować", "majster", "szlafrok" i "spacer" to wszystko słowa zapożyczone z języka niemieckiego.
W samym niemieckim natomiast dużo wyrazów pochodzi z języka francuskiego. Podczas gdy w języku polskim słowa z francuskiego są prawie zawsze spolszczone, czyli zapisywane tak, jak my je słyszymy (francuskie "sauce", polskie "sos"), Niemcy często zostawiają je tak, jak w języku francuskim (niemieckie "Sauce", zniemczane do "Soße").
==Jak zapisuje się ten język?==
{{Plik|plik=Szlig.png|ramka=mały|rozmiar=260px|pozycja=centruj|opis=powstanie litery ß}}
W języku niemieckim występuje alfabet łaciński (ten sam co w języku polskim). Jednak cechą tego alfabetu są umlauty ('''Ä, Ö, Ü''') oraz litera '''ß''' (Es-Zett, czytaj "es-cet"), czytana jak s. Ta ostatnia jest o tyle ciekawa, że powstała przez zlanie się litery "s" (w starym niemieckim piśmie wyglądającej jak długa pionowa kreska zaokrąglona u końców: ʃ) i "z".
== Jakie dzieła powstały w tym języku? ==
{{Plik|plik=Grimm.jpg|ramka=mały|rozmiar=260px|pozycja=prawo|opis=Wilhelm (z lewej) i Jakub Grimm (z prawej) na obrazie Elisabeth Jerichau-Baumann z 1855 roku.}}
Z '''literatury dla dzieci''' najbardziej znane są baśnie braci Grimm. Jakub Grimm (1785 – 1863) i Wilhelm Grimm (1786 – 1859) zebrali i opublikowali niemieckie opowieści ludowe i baśnie. Kilka z nich zostało sfilmowanych przez wytwórnię Disneya, m.in. "Królewna Śnieżka", "Kopciuszek" i "Śpiąca królewna". Także "Czerwony kapturek" oraz "Jaś i Małgosia" znane są wśród dzieci na całym świecie.
Johann Wolfgang von Goethe (1749 – 1832) to najsłynniejszy niemiecki poeta romantyczny. Napisał m.in. powieść w listach "Cierpienia młodego Wertera" oraz monumentalną sztukę teatralną "Faust" o uczonym, który zaprzedał duszę diabłu. Był niezwykle wszechstronnym autorem: zajmował się botaniką, geologią, filozofią, teorią kolorów... Do jego znanych wierszy należą m.in. "Nocna pieśń wędrowca", "Pieśń Mignon" ("Znasz-li ten kraj...") oraz ballada "Król Olch".
Popularnym autorem '''literatury młodzieżowej''' był Karol May (1842 – 1912). Najbardziej znane są jego przygodowo-podróżnicze książki o Dzikim Zachodzie, zwłaszcza "Winnetou" i "Skarb w Srebrnym Jeziorze". Ciekawostką jest, że większość swoich książek podróżniczych May napisał nie wyjeżdżając z Niemiec.
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Niemiecki
! Wymowa (PL)
! Polski
|-
| '''Guten Morgen'''
| gutyn morgen
| Dzień dobry (do 12:00)
|-
| '''Guten Tag'''
| gutyn tak
| Dzień dobry (12:00–18:00)
|-
| '''Guten Abend'''
| gutyn abent
| Dobry wieczór (17:00–22:00)
|-
| '''Hallo'''
| halo
| Cześć (powitanie)
|-
| '''Tschüs'''
| czius
| Cześć (pożegnanie)
|-
| '''Auf Wiedersehen'''
| auf wider-zeen
| Do widzenia
|-
| '''Bitte'''
| byte
| Proszę
|-
| '''Danke'''
| danke
| Dziękuję
|-
| '''Ich heiße...'''
| yś hajse
| Nazywam się...
|-
| '''Ich liebe dich'''
| yś libe dyś
| Kocham cię
|-
| '''Ich bin...'''
| yś bin
| Jestem...
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
2e86fp24rox9ib4d5y1y2qnqyt7y8ik
551911
551902
2026-08-16T02:52:30Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551911
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Język niemiecki jest językiem używanym w Europie: w Niemczech i w Austrii jako jedyny język urzędowy, a także w w Belgii, w Szwajcarii i w Liechtensteinie.
{{Plik|plik=Legal status of German in the world.svg|auto=tak,40;0|opis=Mapa państw i społeczności, gdzie mówi się po niemiecku}}
==Jaka jest historia tego języka?==
Język ten należy do grupy germańskiej, czyli jest krewnym na przykład szwedzkiego oraz angielskiego.
Co ciekawe, bardzo dużo słów w języku polskim, zwłaszcza dotyczących rzemiosła i techniki, pochodzi z niemieckiego. "Kosztować", "majster", "szlafrok" i "spacer" to wszystko słowa zapożyczone z języka niemieckiego.
W samym niemieckim natomiast dużo wyrazów pochodzi z języka francuskiego. Podczas gdy w języku polskim słowa z francuskiego są prawie zawsze spolszczone, czyli zapisywane tak, jak my je słyszymy (francuskie "sauce", polskie "sos"), Niemcy często zostawiają je tak, jak w języku francuskim (niemieckie "Sauce", zniemczane do "Soße").
==Jak zapisuje się ten język?==
{{Plik|plik=Szlig.png|ramka=mały|rozmiar=260px|pozycja=centruj|opis=powstanie litery ß}}
W języku niemieckim występuje alfabet łaciński (ten sam co w języku polskim). Jednak cechą tego alfabetu są umlauty ('''Ä, Ö, Ü''') oraz litera '''ß''' (Es-Zett, czytaj "es-cet"), czytana jak s. Ta ostatnia jest o tyle ciekawa, że powstała przez zlanie się litery "s" (w starym niemieckim piśmie wyglądającej jak długa pionowa kreska zaokrąglona u końców: ʃ) i "z".
== Jakie dzieła powstały w tym języku? ==
{{Plik|plik=Grimm.jpg|ramka=mały|rozmiar=260px|pozycja=prawo|opis=Wilhelm (z lewej) i Jakub Grimm (z prawej) na obrazie Elisabeth Jerichau-Baumann z 1855 roku.}}
Z '''literatury dla dzieci''' najbardziej znane są baśnie braci Grimm. Jakub Grimm (1785 – 1863) i Wilhelm Grimm (1786 – 1859) zebrali i opublikowali niemieckie opowieści ludowe i baśnie. Kilka z nich zostało sfilmowanych przez wytwórnię Disneya, m.in. "Królewna Śnieżka", "Kopciuszek" i "Śpiąca królewna". Także "Czerwony kapturek" oraz "Jaś i Małgosia" znane są wśród dzieci na całym świecie.
Johann Wolfgang von Goethe (1749 – 1832) to najsłynniejszy niemiecki poeta romantyczny. Napisał m.in. powieść w listach "Cierpienia młodego Wertera" oraz monumentalną sztukę teatralną "Faust" o uczonym, który zaprzedał duszę diabłu. Był niezwykle wszechstronnym autorem: zajmował się botaniką, geologią, filozofią, teorią kolorów... Do jego znanych wierszy należą m.in. "Nocna pieśń wędrowca", "Pieśń Mignon" ("Znasz-li ten kraj...") oraz ballada "Król Olch".
Popularnym autorem '''literatury młodzieżowej''' był Karol May (1842 – 1912). Najbardziej znane są jego przygodowo-podróżnicze książki o Dzikim Zachodzie, zwłaszcza "Winnetou" i "Skarb w Srebrnym Jeziorze". Ciekawostką jest, że większość swoich książek podróżniczych May napisał nie wyjeżdżając z Niemiec.
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Niemiecki
! Wymowa (PL)
! Polski
|-
| '''Guten Morgen'''
| gutyn morgen
| Dzień dobry (do 12:00)
|-
| '''Guten Tag'''
| gutyn tak
| Dzień dobry (12:00–18:00)
|-
| '''Guten Abend'''
| gutyn abent
| Dobry wieczór (17:00–22:00)
|-
| '''Hallo'''
| halo
| Cześć (powitanie)
|-
| '''Tschüs'''
| czius
| Cześć (pożegnanie)
|-
| '''Auf Wiedersehen'''
| auf wider-zeen
| Do widzenia
|-
| '''Bitte'''
| byte
| Proszę
|-
| '''Danke'''
| danke
| Dziękuję
|-
| '''Ich heiße...'''
| yś hajse
| Nazywam się...
|-
| '''Ich liebe dich'''
| yś libe dyś
| Kocham cię
|-
| '''Ich bin...'''
| yś bin
| Jestem...
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
rrtec887o4zw7j176t729s6i1ojv83a
Wikijunior:Języki/Hiszpański
104
15793
551899
548758
2026-08-16T02:02:52Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551899
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Język hiszpański jest jednym z najbardziej znanych języków na świecie. Mówi się nim w Hiszpanii, w Ameryce Południowej (oprócz Brazylii, Surinamu, Gujany i Gujany Francuskiej), w Meksyku i na południu USA.
{{plik|plik=Countries with Spanish as an official language.svg|auto=tak,40;0|opis=Mapa obszarów, gdzie hiszpański jest językiem urzędowym. W obszarach zaznaczonych na czerwono hiszpański jest jedynym językiem urzędowym, a w tych na niebiesko tylko jednym z nich.}}
== Jaka jest historia tego języka? ==
Hiszpański należy do grupy języków romańskich, podobnie jak m.in. francuski i włoski. Wywodzi się z łaciny, daje się też w nim zauważyć wpływy arabskie.Język hiszpański jest drugim najpowszechniej używanym językiem na Ziemi. W roku 2006 oceniano, że posługuje się nim jako językiem ojczystym około 650 milionów ludzi na siedmiu kontynentach, szczególnie w Ameryce Południowej, Ameryce Północnej,Europie i zachodniej Afryce.Uchwalona 27 grudnia 1978 (znowelizowana 27 sierpnia 1992) Konstytucja Hiszpanii stanowi, że „Kastylijski jest hiszpańskim urzędowym językiem państwa. Wszyscy Hiszpanie mają obowiązek go znać i prawo nim się posługiwać” (art. 3 ust. 1 Konstytucji Hiszpanii). Niemniej „Pozostałe języki hiszpańskie są również językami urzędowymi w odpowiednich wspólnotach autonomicznych, zgodnie z ich statutami” (art. 3 ust. 2 Konstytucji Hiszpanii). Do kategorii owych „pozostałych języków hiszpańskich” zalicza się, występujące w niektórych regionach (autonomiach) Hiszpanii, lokalne rodzime języki:
== Jak zapisuje się ten język? ==
Język hiszpański zapisuje się przy pomocy alfabetu łacińskiego, podobnie jak angielski czy polski. W hiszpańskim występuje dodatkowo litera '''ñ''', czytana jak polskie '''ń'''. Czasami za dodatkowe litery uznaje się też '''ch''' (czyt. '''cz''') i '''ll''' (dawniej miękkie l, obecnie raczej '''j''').
W hiszpańskim wykrzykniki i znaki zapytania zapisuje się po obu stronach zdania (na początku i na końcu). Znak na początku jest odwrócony do góry nogami (spójrz na przykłady w '''Podstawowych zwrotach''').
== Jakie dzieła powstały w tym języku? ==
Najbardziej znana jest powieść "Przemyślny szlachcic Don Kichote z Manczy" Miguela Cervantesa. W humorystyczny sposób opowiada ona o szalonym rycerzu i jego giermku. Do wielu języków weszło z niej powiedzenie "walka z wiatrakami", oznaczające daremne, nieskuteczne zajęcie.
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (hiszpański) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| ¡Hola! || [ola] || Cześć || uniwersalne, nieformalne przywitanie
|-
| Buenos días || [buenos dijas] || Dzień dobry (rano) || używane do ok. 12:00
|-
| Buenas tardes || [buenas tardes] || Dzień dobry (po południu) || od ok. 12:00 do 18:00
|-
| Buenas noches || [buenas noczes] || Dobry wieczór / Dobranoc || wieczorne przywitanie lub pożegnanie
|-
| ¡Adiós! || [adjos] || Do widzenia / Żegnaj || standardowe pożegnanie
|-
| Hasta la vista || [asta la wista] || Do zobaczenia || potoczne pożegnanie
|-
| Hasta mañana || [asta maniana] || Do jutra || pożegnanie z określeniem czasu
|-
| Por favor || [por fawor] || Proszę || forma grzecznościowa
|-
| Gracias || [grasjas] || Dziękuję || standardowe podziękowanie
|-
| amigo || [amigo] || przyjaciel || rzeczownik, rodzaj męski
|-
| ¿Cómo te llamas? || [komo te jamas] || Jak się nazywasz? || pytanie nieformalne
|-
| Me llamo... || [me jamo] || Nazywam się… || przedstawianie się
|-
| Chocolate || [ciokolate] || Czekolada || rzeczownik
|-
| Sí || [si] || Tak || odpowiedź twierdząca
|-
| No || [no] || Nie || odpowiedź przecząca
|-
| ¿Quieres jugar? || [kieres hugar] || Chcesz się bawić? || pytanie do dziecka lub znajomego
|-
| Agua || [agua] || Woda || rzeczownik
|-
| Leche || [lecie] || Mleko || rzeczownik
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
iqr5vouwy0pb3mp3ieihd2rbxuvgr6c
Wikijunior:Języki/Francuski
104
15821
551897
548759
2026-08-16T02:01:17Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551897
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
W Europie język francuski jest językiem urzędowym we Francji, a także w Belgii (obok niemieckiego i niderlandzkiego), Szwajcarii (obok włoskiego i niemieckiego), w Luksemburgu i Monako. Francuski jest jednym z 3 oficjalnych języków Unii Europejskiej.
Na świecie używany jest także w Kanadzie (głównie na wschodzie - prowincja Quebec), na Haiti i w Gujanie Francuskiej, w zachodniej i centralnej Afryce. Mówi nim około 128 mln ludzi.
{{Plik|plik=Map-Francophone World.svg|auto=tak,40;0|opis=mapa państw, gdzie mówi się po francusku}}
==Jaka jest historia tego języka?==
Język francuski należy do grupy języków romańskich tak jak język włoski czy łacina. Od XVI do XVII wieku był najważniejszym językiem na świecie (tak jak dziś język angielski).
Najdawniejszymi mieszkańcami obecnej Francji byli Celtowie, przez Rzymian nazywani Galami. W obecnym języku francuskim zachowało się poniżej dwustu słów pochodzenia galijskiego, głównie dotyczących roślin, zwierząt i rolnictwa, m.in. bouleau (brzoza), chêne (dąb), mouton (baran), alouette (skowronek), char (wóz) i chemin (droga). Galijskie wpływy można też odnaleźć w "dwudziestkowym" systemie liczenia.
W 50 roku p.n.e. Galia została podbita przez Rzymian pod wodzą Juliusza Cezara. Rzymianie panowali w Galii aż do upadku Cesarstwa w V wieku n.e. Od III wieku na tereny Europy Zachodniej napływały rozmaite plemiona germańskie, w tym Frankowie, od których pochodzi nazwa "Francja". Pochodzenia germańskiego są m.in. słowa blanc (biały), bleu (niebieski), garçon (chłopiec), guerre (wojna) i haine (nienawiść) oraz końcówki -ard, -and, -aud.
W średniowieczu w języku starofrancuskim powstało wiele pieśni-opowieści o bohaterskich rycerzach oraz dworskich romansach. Opowieści te były zazwyczaj anonimowe i często występowały w kilku wersjach. Do najsłynniejszych z nich należą "Pieśń o Rolandzie" i "Opowieść o Tristanie i Izoldzie". Również legendy o Królu Arturze i Rycerzach Okrągłego Stołu po raz pierwszy zostały zapisane po francusku.
W 1539 r. król Franciszek I wydał rozporządzenie, aby język francuski był używany jako oficjalny język w urzędach i sądach, zamiast łaciny. Przyczyniło się to do ujednolicenia pisanego języka francuskiego na terenie całego państwa.
W 1634 r. Kardynał Richelieu założył Akademię Francuską jako organizację, mającą czuwać nad zachowaniem czystości języka francuskiego. W 1694 r. Akademia wydała pierwszy słownik języka francuskiego. Jednym ze skutków działalności Akademii było zahamowanie zmian w rozwoju tego języka. Do dziś język francuski (w porównaniu z innymi językami europejskimi) ma najbardziej tradycyjną, staromodną ortografię (i zapis słów w znacznym stopniu odbiegający od ich wymowy).
== Jak zapisuje się ten język? ==
W języku francuskim występuje 26 liter. Alfabetem w tym języku jest alfabet łaciński (stosowany również w innych językach, na przykład w języku polskim).
== Jakie dzieła powstały w tym języku? ==
=== Literatura dziecięca ===
Do klasyki literatury dziecięcej należy opowiadanie "Mały Książę" Antoine de Saint-Exupery'ego.
=== Literatura młodzieżowa ===
* "Trzej muszkieterowie" Alexandra Dumas - książka historyczno-przygodowa
* "20 000 mil podmorskiej żeglugi" Jules'a Verne'a - fantastyka naukowa
=== Klasyka literatury ===
Do wybitnych pisarzy dziewiętnastowiecznych należy Victor Hugo, autor m.in. "Nędzników" i "Katedry Najświętszej Marii Panny w Paryżu" (historii szerzej znanej jako "Dzwonnik z Notre Dame").
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot !! Wymowa !! Znaczenie !! Opis
|-
| Salut || [saly] || cześć || bardzo potoczne przywitanie
|-
| Ça va? || [sa wa] || jak leci? || uniwersalne pytanie o samopoczucie
|-
| Bonjour || [bążur] || dzień dobry / witaj || formalne lub neutralne przywitanie
|-
| Comment allez-vous? || [komą tale wu] || jak się Pan/Pani czuje? || forma grzecznościowa
|-
| Je vais bien, merci || [ży we bią, mers-i] || mam się dobrze, dziękuję || odpowiedź na pytanie o samopoczucie
|-
| Au revoir || [o rewuar] || do widzenia || standardowe pożegnanie
|-
| Adieu || [adje] || do zobaczenia || bardziej uroczyste, rzadziej używane
|-
| Pardon || [pardą] || przepraszam || gdy jest nam przykro
|-
| Excusez-moi || [ekskiuze mła] || przepraszam || gdy chcemy przejść lub zwrócić uwagę
|-
| S'il vous plaît || [sil wu ple] || proszę || forma grzecznościowa
|-
| Merci || [mers-i] || dziękuję || standardowe podziękowanie
|-
| Comment tu t'appelles? || [komą ty tapel] || jak się nazywasz? || forma nieformalna
|-
| Je m'appelle ... || [ży mapel] || nazywam się… || przedstawianie się
|-
| Je suis... || [ży słi] || jestem… || opis siebie
|-
| J'ai ... ans || [że ... ą] || mam … lat || podawanie wieku
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
gfnajl5ujj8ytvcpr9sneft3rftzmv1
551909
551897
2026-08-16T02:51:21Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551909
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
W Europie język francuski jest językiem urzędowym we Francji, a także w Belgii (obok niemieckiego i niderlandzkiego), Szwajcarii (obok włoskiego i niemieckiego), w Luksemburgu i Monako. Francuski jest jednym z 3 oficjalnych języków Unii Europejskiej.
Na świecie używany jest także w Kanadzie (głównie na wschodzie - prowincja Quebec), na Haiti i w Gujanie Francuskiej, w zachodniej i centralnej Afryce. Mówi nim około 128 mln ludzi.
{{Plik|plik=Map-Francophone World.svg|auto=tak,40;0|opis=Mapa państw, gdzie mówi się po francusku}}
==Jaka jest historia tego języka?==
Język francuski należy do grupy języków romańskich tak jak język włoski czy łacina. Od XVI do XVII wieku był najważniejszym językiem na świecie (tak jak dziś język angielski).
Najdawniejszymi mieszkańcami obecnej Francji byli Celtowie, przez Rzymian nazywani Galami. W obecnym języku francuskim zachowało się poniżej dwustu słów pochodzenia galijskiego, głównie dotyczących roślin, zwierząt i rolnictwa, m.in. bouleau (brzoza), chêne (dąb), mouton (baran), alouette (skowronek), char (wóz) i chemin (droga). Galijskie wpływy można też odnaleźć w "dwudziestkowym" systemie liczenia.
W 50 roku p.n.e. Galia została podbita przez Rzymian pod wodzą Juliusza Cezara. Rzymianie panowali w Galii aż do upadku Cesarstwa w V wieku n.e. Od III wieku na tereny Europy Zachodniej napływały rozmaite plemiona germańskie, w tym Frankowie, od których pochodzi nazwa "Francja". Pochodzenia germańskiego są m.in. słowa blanc (biały), bleu (niebieski), garçon (chłopiec), guerre (wojna) i haine (nienawiść) oraz końcówki -ard, -and, -aud.
W średniowieczu w języku starofrancuskim powstało wiele pieśni-opowieści o bohaterskich rycerzach oraz dworskich romansach. Opowieści te były zazwyczaj anonimowe i często występowały w kilku wersjach. Do najsłynniejszych z nich należą "Pieśń o Rolandzie" i "Opowieść o Tristanie i Izoldzie". Również legendy o Królu Arturze i Rycerzach Okrągłego Stołu po raz pierwszy zostały zapisane po francusku.
W 1539 r. król Franciszek I wydał rozporządzenie, aby język francuski był używany jako oficjalny język w urzędach i sądach, zamiast łaciny. Przyczyniło się to do ujednolicenia pisanego języka francuskiego na terenie całego państwa.
W 1634 r. Kardynał Richelieu założył Akademię Francuską jako organizację, mającą czuwać nad zachowaniem czystości języka francuskiego. W 1694 r. Akademia wydała pierwszy słownik języka francuskiego. Jednym ze skutków działalności Akademii było zahamowanie zmian w rozwoju tego języka. Do dziś język francuski (w porównaniu z innymi językami europejskimi) ma najbardziej tradycyjną, staromodną ortografię (i zapis słów w znacznym stopniu odbiegający od ich wymowy).
== Jak zapisuje się ten język? ==
W języku francuskim występuje 26 liter. Alfabetem w tym języku jest alfabet łaciński (stosowany również w innych językach, na przykład w języku polskim).
== Jakie dzieła powstały w tym języku? ==
=== Literatura dziecięca ===
Do klasyki literatury dziecięcej należy opowiadanie "Mały Książę" Antoine de Saint-Exupery'ego.
=== Literatura młodzieżowa ===
* "Trzej muszkieterowie" Alexandra Dumas - książka historyczno-przygodowa
* "20 000 mil podmorskiej żeglugi" Jules'a Verne'a - fantastyka naukowa
=== Klasyka literatury ===
Do wybitnych pisarzy dziewiętnastowiecznych należy Victor Hugo, autor m.in. "Nędzników" i "Katedry Najświętszej Marii Panny w Paryżu" (historii szerzej znanej jako "Dzwonnik z Notre Dame").
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot !! Wymowa !! Znaczenie !! Opis
|-
| Salut || [saly] || cześć || bardzo potoczne przywitanie
|-
| Ça va? || [sa wa] || jak leci? || uniwersalne pytanie o samopoczucie
|-
| Bonjour || [bążur] || dzień dobry / witaj || formalne lub neutralne przywitanie
|-
| Comment allez-vous? || [komą tale wu] || jak się Pan/Pani czuje? || forma grzecznościowa
|-
| Je vais bien, merci || [ży we bią, mers-i] || mam się dobrze, dziękuję || odpowiedź na pytanie o samopoczucie
|-
| Au revoir || [o rewuar] || do widzenia || standardowe pożegnanie
|-
| Adieu || [adje] || do zobaczenia || bardziej uroczyste, rzadziej używane
|-
| Pardon || [pardą] || przepraszam || gdy jest nam przykro
|-
| Excusez-moi || [ekskiuze mła] || przepraszam || gdy chcemy przejść lub zwrócić uwagę
|-
| S'il vous plaît || [sil wu ple] || proszę || forma grzecznościowa
|-
| Merci || [mers-i] || dziękuję || standardowe podziękowanie
|-
| Comment tu t'appelles? || [komą ty tapel] || jak się nazywasz? || forma nieformalna
|-
| Je m'appelle ... || [ży mapel] || nazywam się… || przedstawianie się
|-
| Je suis... || [ży słi] || jestem… || opis siebie
|-
| J'ai ... ans || [że ... ą] || mam … lat || podawanie wieku
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
dl8psezhsl7nq3pozzy0axp4jtcw7oo
Wikijunior:Języki/Japoński
104
15835
551900
548799
2026-08-16T02:03:14Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551900
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Język japoński jest używany oczywiście w Japonii. Ale Japończycy, którzy nie mieszkają w Japonii, również używają tego języka.
{{Plik|plik=Japanese_language_extension.PNG|auto=tak,40;0|opis=Mapa państw, gdzie mówi się po japońsku. Ciemnym kolorem oznaczona jest Japonia. Jasnoniebiesko oznaczone są państwa, w których występuje znaczna mniejszość japońskojęzyczna.}}
== Jaka jest historia tego języka? ==
Język japoński nie jest podobny do żadnego innego języka. Dzisiejszy język japoński powstał w XVI wieku.
== Jak zapisuje się ten język? ==
Pismo japońskie nie jest alfabetem, czyli nie jest tak, że każdej głosce odpowiada jeden znak. Są za to znaki dla całych sylab (''katakana'' i ''hiragana'') i słów (''kanji''). Te ostatnie zostały wzięte z pisma chińskiego. Język japoński można też zapisywać alfabetem łacińskim (''romaji''), tak jak język polski.
{{Plik|plik=Katakana origine.png|ramka=mały|rozmiar=300px|pozycja=centruj|opis=Katakana}}
== Jakie dzieła powstały w tym języku? ==
W Japonii powstało wiele dzieł. Mangi i anime są wydawane i emitowane w telewizji również w języku polskim. Do słynniejszych należą Pokemon, Bleach, Kapitan Jastrząb, Naruto, Czarodziejka z Księżyca oraz Shin-chan, Clannad, Chobits.
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (japoński) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| こんにちは || [konnichiwa] || Dzień dobry || przywitanie w ciągu dnia
|-
| こんばんは || [konbanwa] || Dobry wieczór || wieczorne przywitanie
|-
| おはようございます || [ohajō gozaimas] || Dzień dobry (rano) || uprzejme poranne przywitanie
|-
| さようなら || [sajōnara] || Do widzenia || standardowe pożegnanie
|-
| またね || [matane] || Do zobaczenia || nieformalne pożegnanie
|-
| やあ || [ja] || Cześć || bardzo nieformalne powitanie
|-
| 元気? || [genki] || Jak leci? || krótkie pytanie o samopoczucie
|-
| ありがとう || [arigato] || Dziękuję || nieformalne podziękowanie
|-
| ありがとうございます || [arigato gozaimas] || Dziękuję bardzo || uprzejme podziękowanie
|-
| ごめんなさい || [gomen nasai] || Przepraszam || przeprosiny
|-
| お名前は? || [onamae wa] || Jak masz na imię? || pytanie nieformalne
|-
| 私は…です || [watashi wa … des] || Mam na imię… || przedstawianie się
|-
| はい || [hai] || Tak || odpowiedź twierdząca
|-
| いいえ || [iie] || Nie || odpowiedź przecząca
|-
| 猫 || [neko] || Kot || zwierzę
|-
| 犬 || [inu] || Pies || zwierzę
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
rjorjdjhb6xaqmfwgnt44yyuh6s0tfw
Wikijunior:Języki/Arabski
104
15843
551894
548762
2026-08-16T01:59:26Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551894
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Arabski to jeden z najpopularniejszych języków na świecie. Mówi nim około 250 milionów ludzi.
{{Plik|plik=Arabic speaking world.svg|auto=tak,40;0|opis=mapa państw, gdzie mówi się po arabsku}}
Po arabsku mówi się w wielu krajach Afryki i Azji: od Maroka, przez Egipt i Arabię Saudyjską, po Jemen.
== Jaka jest historia tego języka? ==
Arabski to język semicki, brzmi więc zupełnie inaczej niż polski, czy nawet angielski i niemiecki.
== Jak zapisuje się ten język? ==
Arabowie używają innego systemu pisma, niż w języku polskim. Nazywane jest ono pismem arabskim. Nie jest to alfabet, lecz abdżad, gdyż nie zapisuje się w nim samogłosek. Język arabski zapisujemy w drugą stronę niż język polski: zaczynamy po prawej i kończymy po lewej.
{{Plik|plik=Arabic albayancalligraphy.svg|rozmiar=280px|ramka=mały|pozycja=centruj|opis=przykład pisma arabskiego}}
== Jakie dzieła powstały w tym języku? ==
{{Plik|plik=FirstSurahKoran.jpg|ramka=mały|rozmiar=260px|pozycja=prawo|opis=Koran}}
Po arabsku napisano Koran, świętą księgę muzułmanów.
Muzyka arabska powstała na Półwyspie Arabskim oraz na terenach podbitych i opanowanych przez Arabów w średniowieczu.
== Kilka podstawowych zwrotów w tym języku ==
{| class="wikitable"
! Zwrot (arabski) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| ...أهلا ، أنا اسمي || [ahlan, ana ismi] || Cześć, nazywam się… || przedstawianie się
|-
| ولد || [walad] || chłopiec || rzeczownik
|-
| بنت || [bint] || dziewczynka || rzeczownik
|-
| نعم || [na‘am] || Tak || odpowiedź twierdząca
|-
| لا || [lā] || Nie || odpowiedź przecząca
|-
| صباح الخير || [ṣabāḥu l-ḫajri] || Dzień dobry || poranne przywitanie
|-
| مساء الخير || [masāʾu l-ḫajri] || Dobry wieczór || wieczorne przywitanie
|-
| السلام عليكم || [as-salāmu ‘alaykum] || Pokój wam || tradycyjne islamskie przywitanie
|-
| مع السلامة || [ma‘a s-salāmati] || Do widzenia || standardowe pożegnanie
|-
| كيف حالك || [kayfa ḥāluka] || Jak się czujesz? || pytanie (forma męska)
|-
| مرحبا || [marḥaban] || Witam || neutralne przywitanie
|-
| شكرا || [šukran] || Dziękuję || standardowe podziękowanie
|-
| آسف || [āsifun] || Przepraszam || wyrażenie przeprosin
|-
| ما اسمك || [ma smuka / ma smuki] || Jak się nazywasz? || forma męska i żeńska; „i” w smuki niewymawiane
|-
| لا أفهم || [lā afham] || Nie rozumiem || wyrażenie braku zrozumienia
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
ebqit6wvsiox86po3kardld89lukr1h
551908
551894
2026-08-16T02:50:53Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551908
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Arabski to jeden z najpopularniejszych języków na świecie. Mówi nim około 250 milionów ludzi.
{{Plik|plik=Arabic speaking world.svg|auto=tak,40;0|opis=Mapa państw, gdzie mówi się po arabsku}}
Po arabsku mówi się w wielu krajach Afryki i Azji: od Maroka, przez Egipt i Arabię Saudyjską, po Jemen.
== Jaka jest historia tego języka? ==
Arabski to język semicki, brzmi więc zupełnie inaczej niż polski, czy nawet angielski i niemiecki.
== Jak zapisuje się ten język? ==
Arabowie używają innego systemu pisma, niż w języku polskim. Nazywane jest ono pismem arabskim. Nie jest to alfabet, lecz abdżad, gdyż nie zapisuje się w nim samogłosek. Język arabski zapisujemy w drugą stronę niż język polski: zaczynamy po prawej i kończymy po lewej.
{{Plik|plik=Arabic albayancalligraphy.svg|rozmiar=280px|ramka=mały|pozycja=centruj|opis=przykład pisma arabskiego}}
== Jakie dzieła powstały w tym języku? ==
{{Plik|plik=FirstSurahKoran.jpg|ramka=mały|rozmiar=260px|pozycja=prawo|opis=Koran}}
Po arabsku napisano Koran, świętą księgę muzułmanów.
Muzyka arabska powstała na Półwyspie Arabskim oraz na terenach podbitych i opanowanych przez Arabów w średniowieczu.
== Kilka podstawowych zwrotów w tym języku ==
{| class="wikitable"
! Zwrot (arabski) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| ...أهلا ، أنا اسمي || [ahlan, ana ismi] || Cześć, nazywam się… || przedstawianie się
|-
| ولد || [walad] || chłopiec || rzeczownik
|-
| بنت || [bint] || dziewczynka || rzeczownik
|-
| نعم || [na‘am] || Tak || odpowiedź twierdząca
|-
| لا || [lā] || Nie || odpowiedź przecząca
|-
| صباح الخير || [ṣabāḥu l-ḫajri] || Dzień dobry || poranne przywitanie
|-
| مساء الخير || [masāʾu l-ḫajri] || Dobry wieczór || wieczorne przywitanie
|-
| السلام عليكم || [as-salāmu ‘alaykum] || Pokój wam || tradycyjne islamskie przywitanie
|-
| مع السلامة || [ma‘a s-salāmati] || Do widzenia || standardowe pożegnanie
|-
| كيف حالك || [kayfa ḥāluka] || Jak się czujesz? || pytanie (forma męska)
|-
| مرحبا || [marḥaban] || Witam || neutralne przywitanie
|-
| شكرا || [šukran] || Dziękuję || standardowe podziękowanie
|-
| آسف || [āsifun] || Przepraszam || wyrażenie przeprosin
|-
| ما اسمك || [ma smuka / ma smuki] || Jak się nazywasz? || forma męska i żeńska; „i” w smuki niewymawiane
|-
| لا أفهم || [lā afham] || Nie rozumiem || wyrażenie braku zrozumienia
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
9weg9vv9sscy8hyttyeyezuk4enra2a
Wikijunior:Języki/Esperanto
104
16058
551895
548749
2026-08-16T02:00:10Z
Persino
2851
551895
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
{{Plik|plik=Flag of Esperanto.svg|auto=tak;-1|opis=Flaga esperanto}}
Esperanto jest używane na całym świecie, chociaż mówi nim tylko około trzy kilkaset tysięcy osób, czyli mniej więcej tyle, ile mieszka w mieście takim jak np. Gdańsk. Mimo tego esperanto jest najpopularniejszym językiem sztucznym na świecie.
<br clear="left">
== Jaka jest historia tego języka? ==
{{Plik|plik=Zamenhof.jpg|pozycja=lewo|ramka=mały|rozmiar=100px|opis=Ludwik Zamenhof}}
Esperanto opracował Ludwik Zamenhof w 1887 roku. Zauważył on, że ludzie nie chcą ze sobą rozmawiać i nie mogą dojść do porozumienia, i stwierdził, że dzieje się tak, bo ludzie nie mają wspólnego języka, który by rozumieli. Zamenhof był polskim lekarzem pochodzenia żydowskiego i mieszkał w Białymstoku, mieście położonym dziś na północnym wschodzie Polski. <br>
Podczas tworzenia esperanta wykorzystywał słowa z języków powszechnie znanych, takich jak francuski, włoski, niemiecki, angielski, rosyjski czy polski, aby nauka języka była łatwa i można było się go uczyć przez skojarzenia.
{{BrClear|left}}
== Jak zapisuje się ten język? ==
Podobnie jak język polski, esperanto zapisywany jest alfabetem łacińskim, z którego usunięto kilka liter, takich jak q, w, x czy y, i dodano inne, takie jak np. ŝ. Podczas nauki esperanta trzeba pamiętać, że jest rózróżnienie między dużą a małą literą. Tekst zapisuje się od lewej strony do prawej tak, jak w polskim czy angielskim.
{|class="wikitable"
!colspan="2"|litery inaczej wymawiane niż w polszczyźnie
|--
! litera
! wymowa
|--
| ĉ
| cz
|--
| ĝ
| dż
|--
| h
| h (krtaniowe, takie jak w angielskim czy niemieckim)
|--
| ĥ
| ch
|--
| ĵ
| ż
|--
| ŝ
| sz
|--
| ŭ
| ł
|}
Wszystkie pozostałe (a, b, c, d, e, f, g, i, j, k, l, m, n, o, p, r, s, t, u, v, z) są wymawianie tak samo jak po polsku. Ponadto zaśpiew (mówiąc po łacińsku jest to akcent) wypada zawsze na przedostatnią sylabę (zgłoskę).
== Jakie dzieła powstały w tym języku? ==
W esperanto powstały utwory takie jak ''Ho, mia kor''' (''O moje serce'') stworzony przez samego Zamenhofa i powieści, np. ''Homoj sur la Tero'' (''Ludzie na ziemi'').
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot !! Wymowa !! Znaczenie !! Opis
|-
| Saluton || [saluton] || Cześć || podstawowe przywitanie w esperanto
|-
| Bonan tagon || [bonan tagon] || Dzień dobry || neutralne, codzienne przywitanie
|-
| Kiel vi fartas? || [kiel vi fartas] || Jak się masz? || pytanie o samopoczucie
|-
| Ĝis la revido || [dżis la revido] || Do widzenia || standardowe pożegnanie
|-
| Mi petas || [mi petas] || Proszę || forma grzecznościowa
|-
| Dankon || [dankon] || Dziękuję || podstawowe podziękowanie
|-
| Pardonon || [pardonon] || Przepraszam || wyrażenie przeprosin
|-
| Mi estas... || [mi estas] || Jestem… || przedstawianie się lub opis siebie
|-
| Jes || [jes] || Tak || odpowiedź twierdząca
|-
| Ne || [ne] || Nie || odpowiedź przecząca
|-
| Hundo || [hundo] || Pies || nazwa zwierzęcia
|-
| Kato || [kato] || Kot || nazwa zwierzęcia
|-
| Birdo || [birdo] || Ptak || nazwa zwierzęcia
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
fp0mw0fibz9y5wcia66pkkjttcb767i
551896
551895
2026-08-16T02:00:51Z
Persino
2851
/* Jaka jest historia tego języka? */
551896
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
{{Plik|plik=Flag of Esperanto.svg|auto=tak;-1|opis=Flaga esperanto}}
Esperanto jest używane na całym świecie, chociaż mówi nim tylko około trzy kilkaset tysięcy osób, czyli mniej więcej tyle, ile mieszka w mieście takim jak np. Gdańsk. Mimo tego esperanto jest najpopularniejszym językiem sztucznym na świecie.
<br clear="left">
== Jaka jest historia tego języka? ==
{{Plik|plik=Zamenhof.jpg|auto=tak,5;-1|opis=Ludwik Zamenhof}}
Esperanto opracował Ludwik Zamenhof w 1887 roku. Zauważył on, że ludzie nie chcą ze sobą rozmawiać i nie mogą dojść do porozumienia, i stwierdził, że dzieje się tak, bo ludzie nie mają wspólnego języka, który by rozumieli. Zamenhof był polskim lekarzem pochodzenia żydowskiego i mieszkał w Białymstoku, mieście położonym dziś na północnym wschodzie Polski. <br>
Podczas tworzenia esperanta wykorzystywał słowa z języków powszechnie znanych, takich jak francuski, włoski, niemiecki, angielski, rosyjski czy polski, aby nauka języka była łatwa i można było się go uczyć przez skojarzenia.
{{BrClear|left}}
== Jak zapisuje się ten język? ==
Podobnie jak język polski, esperanto zapisywany jest alfabetem łacińskim, z którego usunięto kilka liter, takich jak q, w, x czy y, i dodano inne, takie jak np. ŝ. Podczas nauki esperanta trzeba pamiętać, że jest rózróżnienie między dużą a małą literą. Tekst zapisuje się od lewej strony do prawej tak, jak w polskim czy angielskim.
{|class="wikitable"
!colspan="2"|litery inaczej wymawiane niż w polszczyźnie
|--
! litera
! wymowa
|--
| ĉ
| cz
|--
| ĝ
| dż
|--
| h
| h (krtaniowe, takie jak w angielskim czy niemieckim)
|--
| ĥ
| ch
|--
| ĵ
| ż
|--
| ŝ
| sz
|--
| ŭ
| ł
|}
Wszystkie pozostałe (a, b, c, d, e, f, g, i, j, k, l, m, n, o, p, r, s, t, u, v, z) są wymawianie tak samo jak po polsku. Ponadto zaśpiew (mówiąc po łacińsku jest to akcent) wypada zawsze na przedostatnią sylabę (zgłoskę).
== Jakie dzieła powstały w tym języku? ==
W esperanto powstały utwory takie jak ''Ho, mia kor''' (''O moje serce'') stworzony przez samego Zamenhofa i powieści, np. ''Homoj sur la Tero'' (''Ludzie na ziemi'').
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot !! Wymowa !! Znaczenie !! Opis
|-
| Saluton || [saluton] || Cześć || podstawowe przywitanie w esperanto
|-
| Bonan tagon || [bonan tagon] || Dzień dobry || neutralne, codzienne przywitanie
|-
| Kiel vi fartas? || [kiel vi fartas] || Jak się masz? || pytanie o samopoczucie
|-
| Ĝis la revido || [dżis la revido] || Do widzenia || standardowe pożegnanie
|-
| Mi petas || [mi petas] || Proszę || forma grzecznościowa
|-
| Dankon || [dankon] || Dziękuję || podstawowe podziękowanie
|-
| Pardonon || [pardonon] || Przepraszam || wyrażenie przeprosin
|-
| Mi estas... || [mi estas] || Jestem… || przedstawianie się lub opis siebie
|-
| Jes || [jes] || Tak || odpowiedź twierdząca
|-
| Ne || [ne] || Nie || odpowiedź przecząca
|-
| Hundo || [hundo] || Pies || nazwa zwierzęcia
|-
| Kato || [kato] || Kot || nazwa zwierzęcia
|-
| Birdo || [birdo] || Ptak || nazwa zwierzęcia
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
40jq9cmeud6clo6loot5gn2zf897eyg
Wikijunior:Języki/Włoski
104
16411
551905
548764
2026-08-16T02:07:22Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551905
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Włoskim jako językiem ojczystym posługuje się 60-70 milionów ludzi. Ponadto 120-130 milionów ludzi nauczyło się tego języka.
Język włoski jest używany jako język urzędowy we Włoszech i San Marino, oraz jako jeden z języków urzędowych w Szwajcarii (obok francuskiego i niemieckiego). Mówi się nim także w Watykanie (urzędowym językiem Watykanu jest jednak łacina).
{{Plik|plik=Linguistic map of the Italian language.svg|auto=tak,40;0|opis=mapa państw, gdzie mówi się po włosku}}
Włoski jest szeroko znany, choć nie jest już językiem urzędowym, w byłych włoskich koloniach w Afryce: Libii, Somalii i Erytrei.
Znaczne skupiska mniejszości włoskojęzycznych występują w Ameryce Południowej (po 1,5 miliona emigrantów w Argentynie i Brazylii) i Północnej (milion emigrantów w Stanach Zjednoczonych).
== Jaka jest historia tego języka? ==
Język włoski jest językiem romańskim, podobnie jak francuski czy hiszpański. Wywodzi się z łaciny.
== Jak zapisuje się ten język? ==
Język włoski zapisuje się przy pomocy alfabetu łacińskiego, jak prawie wszystkie języki europejskie, w tym polski. Alfabet włoski ma 26 liter, ale niektóre z nich (J,K,W,X,Y) są używane tylko w słowach pochodzenia obcego.
== Jakie dzieła powstały w tym języku? ==
Znaną powieścią dla dzieci jest "Pinokio" Carla Collodiego (1826-1890).
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (włoski) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| Buongiorno || [błondżiorno] || Dzień dobry || formalne lub neutralne przywitanie
|-
| Ciao! || [cziao] || Cześć! || nieformalne przywitanie lub pożegnanie
|-
| Come stai? || [kome stai] || Jak leci? / Co słychać? || pytanie nieformalne
|-
| Arrivederci || [arriwederczi] || Do widzenia || standardowe pożegnanie
|-
| A presto! || [a presto] || Do szybkiego zobaczenia || pożegnanie z określeniem czasu
|-
| Grazie || [gracje] || Dziękuję || standardowe podziękowanie
|-
| Prego || [prego] || Proszę || odpowiedź na „dziękuję” lub prośba
|-
| Mi dispiace! || [mi dispiacze] || Przykro mi / przepraszam || wyrażenie żalu lub przeprosin
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
86s8u1kcs6knaku5usz6wfvp9sp5i7f
551906
551905
2026-08-16T02:50:07Z
Persino
2851
551906
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Włoskim jako językiem ojczystym posługuje się 60-70 milionów ludzi. Ponadto 120-130 milionów ludzi nauczyło się tego języka.
Język włoski jest używany jako język urzędowy we Włoszech i San Marino, oraz jako jeden z języków urzędowych w Szwajcarii (obok francuskiego i niemieckiego). Mówi się nim także w Watykanie (urzędowym językiem Watykanu jest jednak łacina).
{{Plik|plik=Linguistic map of the Italian language.svg|auto=tak,40;0|opis=Mapa państw, gdzie mówi się po włosku}}
Włoski jest szeroko znany, choć nie jest już językiem urzędowym, w byłych włoskich koloniach w Afryce: Libii, Somalii i Erytrei.
Znaczne skupiska mniejszości włoskojęzycznych występują w Ameryce Południowej (po 1,5 miliona emigrantów w Argentynie i Brazylii) i Północnej (milion emigrantów w Stanach Zjednoczonych).
== Jaka jest historia tego języka? ==
Język włoski jest językiem romańskim, podobnie jak francuski czy hiszpański. Wywodzi się z łaciny.
== Jak zapisuje się ten język? ==
Język włoski zapisuje się przy pomocy alfabetu łacińskiego, jak prawie wszystkie języki europejskie, w tym polski. Alfabet włoski ma 26 liter, ale niektóre z nich (J,K,W,X,Y) są używane tylko w słowach pochodzenia obcego.
== Jakie dzieła powstały w tym języku? ==
Znaną powieścią dla dzieci jest "Pinokio" Carla Collodiego (1826-1890).
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (włoski) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| Buongiorno || [błondżiorno] || Dzień dobry || formalne lub neutralne przywitanie
|-
| Ciao! || [cziao] || Cześć! || nieformalne przywitanie lub pożegnanie
|-
| Come stai? || [kome stai] || Jak leci? / Co słychać? || pytanie nieformalne
|-
| Arrivederci || [arriwederczi] || Do widzenia || standardowe pożegnanie
|-
| A presto! || [a presto] || Do szybkiego zobaczenia || pożegnanie z określeniem czasu
|-
| Grazie || [gracje] || Dziękuję || standardowe podziękowanie
|-
| Prego || [prego] || Proszę || odpowiedź na „dziękuję” lub prośba
|-
| Mi dispiace! || [mi dispiacze] || Przykro mi / przepraszam || wyrażenie żalu lub przeprosin
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
4kuuj4yrxzxe739hmf51n2tqv7nkp8a
Wikijunior:Języki/Grecki
104
16412
551898
548765
2026-08-16T02:02:30Z
Persino
2851
/* Jaka jest historia tego języka? */
551898
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Język grecki jest używany głównie w Grecji i na Cyprze.
== Jaka jest historia tego języka? ==
Język grecki ma ponad 3000 lat historii. Można w niej wyróżnić następujące okresy:
* '''Greka klasyczna''' - od X wieku p.n.e. do ok. 330 roku p.n.e.
* '''Greka "koine" (wspólna) ''' - od 330 r. p.n.e. do 330 r. n.e.
* '''Greka średniowieczna (bizantyjska) ''' - od 330 r. n.e. do 1453 r. n.e. (do upadku Konstantynopola).
* '''Greka współczesna''' - od 1453 r. do dzisiaj.
{{Plik|plik=Empress_Zoe_mosaic_Hagia_Sophia.jpg|auto=tak,30;0|opis=Mozaika z Hagia Sophia w Konstantynopolu, przedstawiająca Chrystusa z cesarzem Konstantynem IX i cesarzową Zoe. Napis IC XC to skrót od "Jezus Chrystus".}}
{{plik|plik=Haghia_Sophia_virgin_irene_john2.jpg|auto=tak,30;0|opis=Mozaika z Hagia Sophia, przedstawiająca Maryję z cesarzem Janem II i cesarzową Ireną. Litery ΜΡ i ΘΥ wokół Maryi to skrót od ΜΗΤΗΡ ΘΕΟΥ - Matka Boga.}}
W grece średniowiecznej literę Σ (sigma) zapisywano podobnie do C, stąd napis ΙΗΣΟΥΣ ΧΡΙΣΤΟΣ (Jezus Chrystus) zmienia się w IHCOYC XPICTOC, zapisywane skrótowo jako IC XC.
== Jak zapisuje się ten język? ==
Język grecki jest jednym z nielicznych języków europejskich niezapisywanych przy pomocy alfabetu łacińskiego. Oto alfabet grecki:
{|class="wikitable"
! colspan="33" | Wielkie litery
|-
|width=3% align="center" |Α||width=3% align="center"|Β||width=3% align="center"|Γ||width=3% align="center"|Δ||width=3% align="center"|Ε||width=3% align="center"|Ζ||width=3% align="center"|Η||width=3% align="center"|Θ||width=3% align="center"|Ι||width=3% align="center"|Κ||width=3% align="center"|Λ||width=3% align="center"|Μ||width=3% align="center"|Ν||width=3% align="center"|Ξ||width=3% align="center"|Ο||width=3% align="center"|Π||width=3% align="center"|Ρ||width=3% align="center"|Σ||width=3% align="center"|Τ||width=3% align="center"|Υ||width=3% align="center"|Φ||width=3% align="center"|Χ||width=3% align="center"|Ψ||width=3% align="center"|Ω
|-
! colspan="33" | Małe litery
|-
|align="center"|α||align="center"|β||align="center"|γ||align="center"|δ||align="center"|ε||align="center"|ζ||align="center"|η||align="center"|θ||align="center"|ι||align="center"|κ||align="center"|λ||align="center"|μ||align="center"|ν||align="center"|ξ||align="center"|ο||align="center"|π||align="center"|ρ||align="center"|σ||align="center"|τ||align="center"|υ||align="center"|φ||align="center"|χ||align="center"|ψ||align="center"|ω
|-
! colspan="33" | Nazwy liter
|-
|align="center"|alfa||align="center"|beta||align="center"|gamma||align="center"|delta||align="center"|epsilon||align="center"|zeta||align="center"|eta||align="center"|theta||align="center"|jota||align="center"|kappa||align="center"|lambda||align="center"|mi||align="center"|ni||align="center"|ksi||align="center"|omikron||align="center"|pi||align="center"|rho||align="center"|sigma||align="center"|tau||align="center"|ypsilon||align="center"|fi||align="center"|chi||align="center"|psi||align="center"|omega
|}
== Jakie dzieła powstały w tym języku? ==
W '''okresie starożytnym''':
* poematy Homera: "Iliada" i "Odyseja"
* dramaty, m.in. "Antygona" Sofoklesa
* dialogi i traktaty filozoficzne (Platon, Arystoteles)
W '''grece "koine" ''' jest napisany Nowy Testament.
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (grecki) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| καλημέρα || [kalimera] || dzień dobry || poranne przywitanie
|-
| Γεια σου || [ja su] || cześć || nieformalne powitanie i pożegnanie
|-
| Χαίρετε || [chierete] || witaj || dosłownie „radujcie się”; forma uprzejma
|-
| Τα λέμε || [ta leme] || do zobaczenia || potoczne pożegnanie
|-
| τι κάνεις; || [ti kanis] || jak się czujesz? / co słychać? || pytanie nieformalne
|-
| Πολύ καλά, ευχαριστώ || [poli kala, efcharisto] || bardzo dobrze, dziękuję || odpowiedź na pytanie o samopoczucie
|-
| Σε ευχαριστώ || [se efcharisto] || dziękuję || forma bezpośrednia
|-
| Παρακαλώ || [parakalo] || proszę || forma grzecznościowa
|-
| Συγνώμη || [sygnomi] || przepraszam || wyrażenie przeprosin
|-
| Όχι || [ochi] || nie || odpowiedź przecząca
|-
| Ναι || [ne] || tak || odpowiedź twierdząca
|-
| Καληνύχτα || [kalinichta] || dobranoc || pożegnanie wieczorne
|-
| Καλό βράδυ || [kalo vradi] || dobry wieczór || życzenie na wieczór
|-
| Είμαι από την Πολωνία || [ime apo tin Polonija] || jestem z Polski || przedstawianie pochodzenia
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
e1503a77ejgj9uahvvrx536ldybuwio
Wikijunior:Języki/Słowacki
104
25263
551904
548770
2026-08-16T02:07:03Z
Persino
2851
551904
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Po słowacku mówi się na Słowacji, a także w Wojwodinie, która jest częścią Serbii.
{{Plik|plik=EU_location_SVK.png|auto=tak,40;0|opis=Położenie Słowacji w Europie}}
{{Plik|plik=Location map of Serbia in Europe with Vojvodina highlighted (2006–2008).png|auto=tak,40;0|opis=Położenie Wojwodiny w Europie. Na pomarańczowo Wojwodina, na żółto Serbia}}
== Jaka jest historia tego języka? ==
{{Dopracować|oparłem na [[:en:w:History of the Slovak language]], który niby ma jedno (słowackie) źródło, ale artykuł jest sporny i sam to czuję}}
Można przyjąć, że język słowacki powstał na początku dziesiątego wieku po podbiciu Państwa Wielkomorawskiego (słowiańskiego państwa obejmującego tereny dzisiejszych Czech, Moraw, Węgier, Słowacji i być może południowej Polski) przez Węgrów, którzy przybyli ze wschodu. Językiem oficjalnym była wtedy łacina. W trzynastym lub czternastym wieku słowacki zaczął być zapisywany, ale od czternastego wieku na ziemiach dzisiejszej Słowacji jako języka oficjalnego zaczęto używać też czeskiego. Słowacja należała do Węgier, które później trafiły pod władzę austriackich Habsburgów. Po powstaniu Austro-Węgier w roku 1867, kiedy Węgry stały się częścią państwa równoważną Austrii, trwała madziaryzacja - Słowakom próbowano narzucić język węgierski (tak jak niemiecki i rosyjski Polakom w czasie germanizacji i rusyfikacji). W 1918 powstała Czechosłowacja, w której słowacki był językiem urzędowym tak samo jak czeski. Języki te są bardzo podobne, próbowano więc uczynić z nich przed drugą wojną światową jeden język czechosłowacki, ale to się nie udało. W roku 1993 Czechosłowacja się rozpadła, a słowacki stał się językiem urzędowym niepodległej Słowacji, jednak wciąż wiele książek i filmów jest na Słowacji wydawanych po czesku.
== Jak zapisuje się ten język? ==
Język ten zapisuje się, tak jak polski, zmodyfikowanym alfabetem łacińskim.
<center>
{| class="wikitable"
|+ Alfabet słowacki (Slovenská abeceda)
! align="center" colspan="46" | Wielkie litery (Velká písmena)
|-
|width=3% align="center"|A ||width=3% align="center"|Á ||width=3% align="center"|Ä ||width=3% align="center"|B ||width=3% align="center"|C ||width=3% align="center"|Č ||width=3% align="center"|D ||width=3% align="center"|Ď||width=3% align="center"|DZ ||width=3% align="center"|DŽ ||width=3% align="center"|E ||width=3% align="center"|É ||width=3% align="center"|F ||width=3% align="center"|G ||width=3% align="center"|H ||width=3% align="center"|CH||width=3% align="center"|I ||width=3% align="center"|Í ||width=3% align="center"|J ||width=3% align="center"|K ||width=3% align="center"|L ||width=3% align="center"|Ĺ ||width=3% align="center"|Ľ
|-
! align="center" colspan="46" | Małe litery (Malá písmena)
|-
|align="center"|a||align="center"|á||align="center"|ä||align="center"|b||align="center"|c||align="center"|č||align="center"|d||align="center"|ď||align="center"|dz||align="center"|dž||align="center"|e||align="center"|é||align="center"|f||align="center"|g||align="center"|h||align="center"|ch ||align="center"|i||align="center"|í||align="center"|j||align="center"|k||align="center"|l||align="center"|ĺ||align="center"|ľ
|-
! align="center" colspan="46" | Wielkie litery (Velká písmena)
|-
|width=3% align="center"|M||width=3% align="center"|N ||width=3% align="center"|Ň||width=3% align="center"|O ||width=3% align="center"|Ó ||width=3% align="center"|Ô||width=3% align="center"|P ||width=3% align="center"|Q ||width=3% align="center"|R ||width=3% align="center"|Ŕ ||width=3% align="center"|S ||width=3% align="center"|Š ||width=3% align="center"|T ||width=3% align="center"|Ť ||width=3% align="center"|U ||width=3% align="center"|Ú ||width=3% align="center"|V ||width=3% align="center"|W ||width=3% align="center"|X ||width=3% align="center"|Y ||width=3% align="center"|Ý ||width=3% align="center"|Z ||width=3% align="center"|Ž
|-
! align="center" colspan="46" | Małe litery (Malá písmena)
|-
|align="center"|m||align="center"|n||align="center"|ň ||align="center"|o||align="center"|ó||align="center"|ô||align="center"|p||align="center"|q ||align="center"|r ||align="center"|ŕ ||align="center"|s ||align="center"|š ||align="center"|t ||align="center"|ť ||align="center"|u ||align="center"|ú ||align="center"|v ||align="center"|w ||align="center"|x ||align="center"|y ||align="center"|ý ||align="center"|z ||align="center"|ž
|}
</center>
Występuje w nim kilka liter, które nie występują w polskim albo oznaczają w nim inne dźwięki. Ich wymowa to w przybliżeniu:
* á - długie a
* ä - a lub e, najczęściej e
* č - polskie cz
* ď - miękkie d
* é - długie e
* h - dźwięczne h
* í - długie i
* ĺ - długie l
* ľ - miękkie l
* ň - polskie ń
* ó - długie o
* ô - polskie ło
* ŕ - długie r
* š - polskie sz
* ť - miękkie t
* ú - długie u
* v - polskie w
* ý - długie i
* ž - polskie ż
Inne litery wymawia się mniej więcej tak, jak w polskim. Ciekawe jest też, że dwuznak "ch" (również wymawiany jak w polskim) traktuje się jak jedną literę umieszczoną w alfabecie po "h". Nie ma za to dwuznaków "sz", "rz", "cz", a litera "w" występuje tylko w wyrazach obcych.
== Jakie dzieła powstały w tym języku? ==
Jedną z autorek piszących dla dzieci po słowacku jest Jana Bodnárová.
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (słowacki) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| áno || [ano] || tak || odpowiedź twierdząca
|-
| nie || [nie] || nie || odpowiedź przecząca
|-
| Ďakujem || [djakujem] || dziękuję || standardowe podziękowanie
|-
| Prosím || [prosim] || proszę || forma grzecznościowa
|-
| Prosím si… || [prosim si] || proszę o… || wyrażenie prośby
|-
| Dobré ráno! || [dobre rano] || dzień dobry || poranne przywitanie
|-
| Dovidenia! || [dowidenia] || do widzenia || standardowe pożegnanie
|-
| Dobrý večer! || [dobry weczer] || dobry wieczór || wieczorne przywitanie
|-
| Dobrú noc! || [dobru noc] || dobranoc || pożegnanie na noc
|-
| Ahoj! || [ahoj] || cześć || nieformalne powitanie i pożegnanie
|-
| Prepáčte! || [prepaczte] || przepraszam || forma uprzejma
|-
| Ako sa voláš? || [ako sa wolasz] || jak się nazywasz? || pytanie nieformalne
|-
| Moje meno je Anna. || [moje meno je anna] || mam na imię Anna || przedstawianie się
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
nwcwt3h3f7qshau6ohtgdi9ejf4yy63
Wikijunior:Języki/Quenya
104
30680
551903
548773
2026-08-16T02:05:51Z
Persino
2851
/* Jak zapisuje się ten język? */
551903
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
Quenya to '''sztuczny język''', stworzony w całości przez brytyjskiego pisarza Johna Ronalda Reuela Tolkiena. Jego najbardziej znane dzieła to seria książek ''Władca Pierścieni'' i powieść ''Hobbit''. Poza quenyą Tolkien stworzył jeszcze 10 innych języków, lecz tylko dwa – ''quenya'' i ''sindarin'' – są na tyle rozwinięte, że można ich używać.
== Jak zapisuje się ten język? ==
{{Plik|plik=Arda.Tengwar.png|auto=tak,2;-1|opis=Słowo '''''Arda''''' (''świat'') zapisane w Tengwarze}}
Używa on specjalnego systemu znaków, znanego jako ''Tengwar''. "Tengwar" w quenyi znaczy dosłownie "litery". Te litery są zupełnie inne, od tych którymi zapisany jest '''ten''' tekst, czyli od liter łacińskich. Pomimo tego, nie ma żadnych ograniczeń i quenyę można zapisywać każdym systemem pisma.
Do zapisu quenyi naszym alfabetem używamy liter:
:'''a, á, b, c, d, e, é, f, g, h, i, í, l, m, n, o, ó, p, q, r, s, t, u, ú, v, w, x,''' i '''y.'''
Istnieją małe różnice w czytaniu liter: <br />
'''c''' czyta się zawsze jak '''k''', <br />
'''y''' jak '''j''', <br />
'''w''' jak '''ł''', <br />
'''v''' jak '''w'''.<br />
Są też grupy liter, które reprezentują dźwięki zapisywane osobnymi tengwami (literami): '''ny''', '''ty''', '''ly''', '''gw''', '''nw''', '''qu''' (dawniej: ''cw'') i tak dalej.
Zapis quenyi nie opierał się na początku o alfabet łaciński, dlatego niektórzy mogą zapisać jeden wyraz na dwa sposoby. Przykładowo, niektórzy napiszą: ''cirya'' (''statek''), a inni: ''kirya''. Jest to spowodowane tym, że w Tengwarze ''c'' i ''k'' oznaczają ten sam dźwięk i przypada im jeden znak.<br>
Czasem można zauważyć, że litery mają nad sobą dwie małe kropki, np. '''ë''' w wyrazie ''nissë'' (''kobieta''). Nie wpływa to na wymowę – po prostu Tolkien w ten sposób zaznaczył dla ludzi mówiących po angielsku, że ''e'' na końcu wyrazu jest także wymawiane.<br>
Zdarza się też, że litera ma nad sobą pochyłą kreskę, np. '''ó'''. Czyta się to wtedy jako zwykłe '''o''', które wymawia się długo (''oo''), np. ''hón'' (''serce'').
== Gdzie używa się tego języka? ==
Tolkien stworzył świat, który jest bardzo podobny do naszego. Nazwał go ''Arda''. Jest to miejsce, w którym żyją przeróżne ludy, w tym Ludzie, Krasnoludy i Elfy. Elfy dzielą się na wiele szczepów i każdy mówi w jednym z języków: '''sindarinie''', '''quenyi''', '''telerinie''', '''nandorinie''' i wielu innych. Są one podobne, ponieważ wywodzą się z języka praelfickiego. Sama quenya dzieli się na dialekty takie jak vanyarin i ñoldorin. Podobnie jest z językami europejskimi, np. francuskim, włoskim i hiszpańskim. Wszystkie powstały na podstawie starożytnego języka – łaciny.
W naszym świecie również używa się tego języka. Poza użyciem quenyi i sindarinu w filmach ''Petera Jacksona'', istnieją grupy ludzi, które uczą się quenyi. Takie grupy są najliczniejsze między innymi w Polsce i krajach Ameryki Południowej.
== Jacy są najpopularniejsi ludzie tworzący w tym języku? ==
'''''J.R.R. Tolkien''''' (1892 – 1973) twórca quenyi i innych języków Śródziemia. Jego syn, '''Christopher Tolkien''', kontynuował publikowanie tekstów związanych z quenyą po śmierci ojca.
'''Helge K. Fauskanger''' i '''Thorsten Renk''' są uważani za najlepszych współczesnych badaczy języków Tolkiena. Napisali w języku angielskim podręczniki i artykuły o quenyi i sindarinie (drugim języku Elfów).
'''Ryszard Derdziński''' to polski badacz języków Tolkiena, a także tłumacz językowych dodatków do '''''Władcy Pierścieni'''''. Napisał kilka wierszy w quenyi i sindarinie.
== Jakie są podstawowe słowa i zwroty, których mogę się nauczyć? ==
{| class="wikitable"
! Zwrot (quenya) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| Elen síla lúmenn' omentielvo || [elen sila lumen omentielwo] || Gwiazda świeci na czas naszego spotkania || uroczyste, ceremonialne powitanie
|-
| aiya || [aja] || cześć || krótkie, nieformalne powitanie
|-
| namárië || [namarie] || do widzenia || pożegnanie, często poetyckie
|-
| hantalë || [hantale] || dzięki || wyrażenie wdzięczności
|-
| ná || [na] || tak || odpowiedź twierdząca
|-
| lá || [la] || nie || odpowiedź przecząca
|-
| mana esselya? || [mana esselja] || jak masz na imię? || pytanie o imię
|-
| nanyë... || [nanje] || jestem… || przedstawianie się
|-
| essenya ná... || [essenja na] || nazywam się… || podawanie imienia
|-
| uan hanya || [uan hanja] || nie rozumiem || wyrażenie braku zrozumienia
|-
| ma hanyalyen? || [ma hanjaljen] || rozumiesz mnie? || pytanie o zrozumienie
|-
| aran || [aran] || król || tytuł władcy
|-
| tári || [tari] || królowa || tytuł władczyni
|-
| Elda || [elda] || Elf || istota z Eldar; liczba mnoga Eldar
|-
| atto ar mamil || [atto ar mamil] || tata i mama || „ar” = „i”
|-
| töa || [toa] || drewno || materiał
|-
| ondo || [ondo] || kamień || materiał, skała
|-
| cár || [kar] || głowa || część ciała
|-
| masta || [masta] || chleb || pożywienie
|-
| Anar || [anar] || Słońce || ciało niebieskie
|-
| Isil || [isil] || Księżyc || ciało niebieskie
|-
| lírë || [lire] || piosenka || utwór muzyczny
|-
| laire || [laire] || wiersz || utwór poetycki
|}
=== Liczby ===
{| class="wikitable"
! Zwrot (quenya) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| minë || [mine] || 1 || podstawowy liczebnik „jeden”
|-
| atta || [atta] || 2 || liczebnik „dwa”
|-
| neldë || [nelde] || 3 || liczebnik „trzy”
|-
| canta || [kanta] || 4 || liczebnik „cztery”
|-
| lempë || [lempe] || 5 || liczebnik „pięć”
|-
| enquë || [enkwe] || 6 || liczebnik „sześć”
|-
| otso || [otso] || 7 || liczebnik „siedem”
|-
| toldo || [toldo] || 8 || liczebnik „osiem”
|-
| nertë || [nerte] || 9 || liczebnik „dziewięć”
|-
| quain || [kwain] || 10 || liczebnik „dziesięć”
|-
| minquë || [minkwe] || 11 || liczebnik „jedenaście”
|-
| yunquë || [junkwe] || 12 || liczebnik „dwanaście”
|}
=== Kolory ===
{| class="wikitable"
! Zwrot (quenya) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| carnë || [karne] || czerwony || podstawowy kolor czerwony
|-
| culuina || [kuluina] || pomarańczowy || barwa pomarańczowa
|-
| fána || [fana] || biel chmur || jasna, chmurna biel
|-
| helwa || [helwa] || kolor nieba || błękit nieba
|-
| laiqa || [laika] || zielony || barwa roślin
|-
| laurëa || [laurea] || złoty || kolor złota, blask
|-
| lossëa || [lossea] || śnieżnobiały || bardzo jasna biel
|-
| luinë || [luine] || niebieski || podstawowy niebieski
|-
| malina || [malina] || żółty || barwa żółta
|-
| morna || [morna] || czarny || ciemna barwa
|-
| ninquë || [ninque] || biały || podstawowa biel
|-
| silma || [silma] || jaskrawy biały / srebrny || błyszcząca biel lub srebro
|-
| sinda || [sinda] || szary || barwa popielata
|-
| varnë || [varne] || brązowy || barwa ziemi
|-
| culda || [kulda] || płomienny czerwony || intensywny, ognisty odcień czerwieni
|}
=== Miesiące ===
{| class="wikitable"
! Zwrot (quenya) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| Narvinyë || [narwinje] || styczeń || pierwszy miesiąc roku
|-
| Nénimë || [nenime] || luty || drugi miesiąc roku
|-
| Súlimë || [sulime] || marzec || trzeci miesiąc roku
|-
| Víressë || [viresse] || kwiecień || czwarty miesiąc roku
|-
| Lótessë || [lotesse] || maj || piąty miesiąc roku
|-
| Nárië || [narie] || czerwiec || szósty miesiąc roku
|-
| Cermië || [kermie] || lipiec || siódmy miesiąc roku
|-
| Úrimë || [urime] || sierpień || ósmy miesiąc roku
|-
| Yavannië || [jawannie] || wrzesień || dziewiąty miesiąc roku
|-
| Narquelië || [narkwelie] || październik || dziesiąty miesiąc roku
|-
| Hísimë || [hisime] || listopad || jedenasty miesiąc roku
|-
| Ringavë || [ringawe] || grudzień || dwunasty miesiąc roku
|}
== Czy są jakieś wiersze lub piosenki, których mogę się nauczyć? ==
Tak - jest wiele tekstów w quenyi, a nawet tłumaczeń polskich modlitw i kolęd. Oto pierwsza zwrotka Namárië, fragment wiersza samego Tolkiena:
(Tak się pisze:)
<blockquote width=80%; style="background:#f4f4ff; border: 1px solid #999; border-right-width: 2px">
Ai! laurië lantar lassi súrinen,<br>
Yéni únótimë ve rámar aldaron!<br>
Yéni ve lintë yuldar avánier<br>
mi oromardi lisse-miruvóreva<br>
Andúnë pella, Vardo tellumar<br>
nu luini yassen tintilar i eleni<br>
ómaryo airetári-lírinen.<br>
</blockquote>
Tak się wymawia:
<blockquote width=80%; style="background:#f4f4ff; border: 1px solid #999; border-right-width: 2px">
Aj! lałrie lantar lassi suurinen<br>
jeeni unootime we raamar aldaron<br>
jeeni we linte juldar awan-jer<br>
mi oromardi lisse miruwoorewa<br>
anduune pella, vardo tel-lumar<br>
nu luini jassen tintilar i eleni<br>
oomarjo ajretaari liirinen.<br>
</blockquote>
W przekładzie Marii Skibniewskiej to znaczy:
<blockquote width=80%; style="background:#f4f4ff; border: 1px solid #999; border-right-width: 2px">
Ah! jak złoto lecą z wiatrem liście!<br>
Nie zliczysz lat, jak na drzewie ptasich skrzydeł.<br>
I jak słodki nektar białego miodu<br>
w pałacach na zachodzie,<br>
pod niebieskim stropem Vardy,<br>
gdzie gwiazdy drżą na głos jej śpiewu,<br>
przeczysty i królewski – tak płyną lata.<br>
</blockquote>
{{BrClear}}
<noinclude>
== Źródła i przydatne linki ==
{{wikipedia|Quenya}}
{{T|Wikijunior:Języki stopka}}
</noinclude>
tjhtf59l8benwi1ezntsm1xey0d0uq7
Wikijunior:Języki/Koreański
104
30885
551901
548797
2026-08-16T02:03:36Z
Persino
2851
551901
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Na świecie koreańskiego używa w sumie około 66 milionów ludzi. Jest językiem urzędowym w Korei Północnej i Korei Południowej, a także w prefekturze autonomicznej Yanbian w Chinach. Dość dużo Koreańczyków żyje też w USA, Kanadzie, Brazylii i Japonii oraz na obszarze byłego Związku Radzieckiego.
{{plik|plik=Map of Korean language.png|auto=tak,40;0|opis=mapa obszarów, gdzie mówi się po koreańsku}}
== Jaka jest historia tego języka? ==
Język koreański był jednym z kluczowych czynników dzięki którym ukształtowała się ich tak silna tożsamość narodowa. Podstawę języka urzędowego stanowi dialekt mieszkańców Seulu (stolicy Korei Południowej) i centralnych rejonów kraju. Poza nim istnieje wiele odrębnych dialektów, jednak podobieństwo między nimi jest tak duże, że ludzie nie mają problemów ze wzajemnym zrozumieniem.
Językoznawcy nie są pewni, jak zaklasyfikować język koreański. Niektórzy sądzą, że należy do języków ałtajskich, wraz z japońskim, tureckim i mongolskim, ale inni uważają, że podobieństwa nie świadczą o pokrewieństwie tych języków, ale są wynikiem zapożyczeń.
Dostrzec w nim można silny wpływ chińskiego, co wynika z silnego związku pomiędzy tymi krajami na przestrzeni wieków. Tak jak w języku japońskim, w koreańskim występuje bardzo wiele zapożyczeń z chińskiego (głównie słownictwo i frazeologia). Struktura gramatyczna koreańskiego jest bardzo bliska strukturze japońskiego, co sprawia, że Koreańczycy tak chętnie podejmują naukę języka sąsiedniego kraju.
== Jak zapisuje się ten język? ==
<blockquote width="80%" style="background:#f4f4ff; border: 2px solid #999; border-right-width: 2px">
:
{| border="0" cellpadding="8" align="center"
|-
| colspan="14" | '''Znaki hangulu''' i ich transkrypcja alfabetem łacińskim
|-
| align="center" bgcolor="#C4F0FB" | ㄱ
| align="center" bgcolor="#C4F0FB" | ㄴ
| align="center" bgcolor="#C4F0FB" | ㄷ
| align="center" bgcolor="#C4F0FB" | ㄹ
| align="center" bgcolor="#C4F0FB" | ㅁ
| align="center" bgcolor="#C4F0FB" | ㅂ
| align="center" bgcolor="#C4F0FB" | ㅅ
| align="center" bgcolor="#C4F0FB" | ㅇ
| align="center" bgcolor="#C4F0FB" | ㅈ
| align="center" bgcolor="#C4F0FB" | ㅊ
| align="center" bgcolor="#C4F0FB" | ㅋ
| align="center" bgcolor="#C4F0FB" | ㅌ
| align="center" bgcolor="#C4F0FB" | ㅍ
| align="center" bgcolor="#C4F0FB" | ㅎ
|-
| align="center" | g || align="center" | n
| align="center" | d
| align="center" | l || align="center" | m
| align="center" | b
| align="center" | s || align="center" | -
| align="center" | j
| align="center" | ch || align="center" | k
| align="center" | t
| align="center" | p || align="center" | h
|-
| align="center" bgcolor="#C4F0FB" | ㅏ
| align="center" bgcolor="#C4F0FB" | ㅑ
| align="center" bgcolor="#C4F0FB" | ㅓ
| align="center" bgcolor="#C4F0FB" | ㅕ
| align="center" bgcolor="#C4F0FB" | ㅗ
| align="center" bgcolor="#C4F0FB" | ㅛ
| align="center" bgcolor="#C4F0FB" | ㅜ
| align="center" bgcolor="#C4F0FB" | ㅠ
| align="center" bgcolor="#C4F0FB" | ㅡ
| align="center" bgcolor="#C4F0FB" | ㅣ
|-
| align="center" | a
| align="center" | ya
| align="center" | eo
| align="center" | yeo
| align="center" | o
| align="center" | yo
| align="center" | u
| align="center" | yu
| align="center" | eu
| align="center" | i
|}
</blockquote>
W XV wieku, na polecenie króla Saejonga, grupa uczonych stworzyła koreańskie pismo nazwane hangulem. Alfabet koreański jest uważany za jeden z najbardziej naukowych systemów pisma na świecie. Składa się on z 10 samogłosek i 14 spółgłosek, które w połączeniu tworzą różne sylaby. System ten jest prosty i łatwy do opanowania. Niektórzy twierdzą, iż właśnie te cechy sprawiły, że w Korei jest tak niski poziom analfabetyzmu.
== Jakie dzieła powstały w tym języku? ==
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (koreański) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| 안녕하세요 || [annjonghasejo] || Dzień dobry || uprzejme przywitanie
|-
| 안녕 || [annjong] || Cześć || nieformalne powitanie i pożegnanie
|-
| 안녕히 가세요 || [annjonghi gasejo] || Do widzenia || gdy ktoś odchodzi
|-
| 안녕히 계세요 || [annjonghi gjeseyo] || Do widzenia || gdy my odchodzimy
|-
| 잘 지내요? || [dżal dżinejo] || Jak leci? || pytanie o samopoczucie
|-
| 감사합니다 || [kamsahamnida] || Dziękuję || formalne podziękowanie
|-
| 미안합니다 || [mianhamnida] || Przepraszam || uprzejme przeprosiny
|-
| 이름이 뭐예요? || [ireumi młojejo] || Jak masz na imię? || pytanie nieformalne
|-
| 이름은 … 입니다 || [ireumeun … imnida] || Nazywam się… || przedstawianie się
|-
| 네 || [ne] || Tak || odpowiedź twierdząca
|-
| 아니요 || [anio] || Nie || odpowiedź przecząca
|-
| 고양이 || [kojangi] || Kot || zwierzę
|-
| 개 || [ke] || Pies || zwierzę
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
l5i2yv4lmek1ba9dvn5xm74jt37j67y
551910
551901
2026-08-16T02:52:11Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551910
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Na świecie koreańskiego używa w sumie około 66 milionów ludzi. Jest językiem urzędowym w Korei Północnej i Korei Południowej, a także w prefekturze autonomicznej Yanbian w Chinach. Dość dużo Koreańczyków żyje też w USA, Kanadzie, Brazylii i Japonii oraz na obszarze byłego Związku Radzieckiego.
{{plik|plik=Map of Korean language.png|auto=tak,40;0|opis=Mapa obszarów, gdzie mówi się po koreańsku}}
== Jaka jest historia tego języka? ==
Język koreański był jednym z kluczowych czynników dzięki którym ukształtowała się ich tak silna tożsamość narodowa. Podstawę języka urzędowego stanowi dialekt mieszkańców Seulu (stolicy Korei Południowej) i centralnych rejonów kraju. Poza nim istnieje wiele odrębnych dialektów, jednak podobieństwo między nimi jest tak duże, że ludzie nie mają problemów ze wzajemnym zrozumieniem.
Językoznawcy nie są pewni, jak zaklasyfikować język koreański. Niektórzy sądzą, że należy do języków ałtajskich, wraz z japońskim, tureckim i mongolskim, ale inni uważają, że podobieństwa nie świadczą o pokrewieństwie tych języków, ale są wynikiem zapożyczeń.
Dostrzec w nim można silny wpływ chińskiego, co wynika z silnego związku pomiędzy tymi krajami na przestrzeni wieków. Tak jak w języku japońskim, w koreańskim występuje bardzo wiele zapożyczeń z chińskiego (głównie słownictwo i frazeologia). Struktura gramatyczna koreańskiego jest bardzo bliska strukturze japońskiego, co sprawia, że Koreańczycy tak chętnie podejmują naukę języka sąsiedniego kraju.
== Jak zapisuje się ten język? ==
<blockquote width="80%" style="background:#f4f4ff; border: 2px solid #999; border-right-width: 2px">
:
{| border="0" cellpadding="8" align="center"
|-
| colspan="14" | '''Znaki hangulu''' i ich transkrypcja alfabetem łacińskim
|-
| align="center" bgcolor="#C4F0FB" | ㄱ
| align="center" bgcolor="#C4F0FB" | ㄴ
| align="center" bgcolor="#C4F0FB" | ㄷ
| align="center" bgcolor="#C4F0FB" | ㄹ
| align="center" bgcolor="#C4F0FB" | ㅁ
| align="center" bgcolor="#C4F0FB" | ㅂ
| align="center" bgcolor="#C4F0FB" | ㅅ
| align="center" bgcolor="#C4F0FB" | ㅇ
| align="center" bgcolor="#C4F0FB" | ㅈ
| align="center" bgcolor="#C4F0FB" | ㅊ
| align="center" bgcolor="#C4F0FB" | ㅋ
| align="center" bgcolor="#C4F0FB" | ㅌ
| align="center" bgcolor="#C4F0FB" | ㅍ
| align="center" bgcolor="#C4F0FB" | ㅎ
|-
| align="center" | g || align="center" | n
| align="center" | d
| align="center" | l || align="center" | m
| align="center" | b
| align="center" | s || align="center" | -
| align="center" | j
| align="center" | ch || align="center" | k
| align="center" | t
| align="center" | p || align="center" | h
|-
| align="center" bgcolor="#C4F0FB" | ㅏ
| align="center" bgcolor="#C4F0FB" | ㅑ
| align="center" bgcolor="#C4F0FB" | ㅓ
| align="center" bgcolor="#C4F0FB" | ㅕ
| align="center" bgcolor="#C4F0FB" | ㅗ
| align="center" bgcolor="#C4F0FB" | ㅛ
| align="center" bgcolor="#C4F0FB" | ㅜ
| align="center" bgcolor="#C4F0FB" | ㅠ
| align="center" bgcolor="#C4F0FB" | ㅡ
| align="center" bgcolor="#C4F0FB" | ㅣ
|-
| align="center" | a
| align="center" | ya
| align="center" | eo
| align="center" | yeo
| align="center" | o
| align="center" | yo
| align="center" | u
| align="center" | yu
| align="center" | eu
| align="center" | i
|}
</blockquote>
W XV wieku, na polecenie króla Saejonga, grupa uczonych stworzyła koreańskie pismo nazwane hangulem. Alfabet koreański jest uważany za jeden z najbardziej naukowych systemów pisma na świecie. Składa się on z 10 samogłosek i 14 spółgłosek, które w połączeniu tworzą różne sylaby. System ten jest prosty i łatwy do opanowania. Niektórzy twierdzą, iż właśnie te cechy sprawiły, że w Korei jest tak niski poziom analfabetyzmu.
== Jakie dzieła powstały w tym języku? ==
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (koreański) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| 안녕하세요 || [annjonghasejo] || Dzień dobry || uprzejme przywitanie
|-
| 안녕 || [annjong] || Cześć || nieformalne powitanie i pożegnanie
|-
| 안녕히 가세요 || [annjonghi gasejo] || Do widzenia || gdy ktoś odchodzi
|-
| 안녕히 계세요 || [annjonghi gjeseyo] || Do widzenia || gdy my odchodzimy
|-
| 잘 지내요? || [dżal dżinejo] || Jak leci? || pytanie o samopoczucie
|-
| 감사합니다 || [kamsahamnida] || Dziękuję || formalne podziękowanie
|-
| 미안합니다 || [mianhamnida] || Przepraszam || uprzejme przeprosiny
|-
| 이름이 뭐예요? || [ireumi młojejo] || Jak masz na imię? || pytanie nieformalne
|-
| 이름은 … 입니다 || [ireumeun … imnida] || Nazywam się… || przedstawianie się
|-
| 네 || [ne] || Tak || odpowiedź twierdząca
|-
| 아니요 || [anio] || Nie || odpowiedź przecząca
|-
| 고양이 || [kojangi] || Kot || zwierzę
|-
| 개 || [ke] || Pies || zwierzę
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
e8kf4ye2ggz3nqk6v5bstrwi49gsqgl
551913
551910
2026-08-16T02:55:22Z
Persino
2851
/* Gdzie mówi się w tym języku? */
551913
wikitext
text/x-wiki
<noinclude>{{T|Wikijunior:Języki nagłówek}}</noinclude>
== Gdzie mówi się w tym języku? ==
Na świecie koreańskiego używa w sumie około 66 milionów ludzi. Jest językiem urzędowym w Korei Północnej i Korei Południowej, a także w prefekturze autonomicznej Yanbian w Chinach. Dość dużo Koreańczyków żyje też w USA, Kanadzie, Brazylii i Japonii oraz na obszarze byłego Związku Radzieckiego.
{{Plik|plik=Map of Korean language.png|auto=tak,40;0|opis=Mapa obszarów, gdzie mówi się po koreańsku}}
== Jaka jest historia tego języka? ==
Język koreański był jednym z kluczowych czynników dzięki którym ukształtowała się ich tak silna tożsamość narodowa. Podstawę języka urzędowego stanowi dialekt mieszkańców Seulu (stolicy Korei Południowej) i centralnych rejonów kraju. Poza nim istnieje wiele odrębnych dialektów, jednak podobieństwo między nimi jest tak duże, że ludzie nie mają problemów ze wzajemnym zrozumieniem.
Językoznawcy nie są pewni, jak zaklasyfikować język koreański. Niektórzy sądzą, że należy do języków ałtajskich, wraz z japońskim, tureckim i mongolskim, ale inni uważają, że podobieństwa nie świadczą o pokrewieństwie tych języków, ale są wynikiem zapożyczeń.
Dostrzec w nim można silny wpływ chińskiego, co wynika z silnego związku pomiędzy tymi krajami na przestrzeni wieków. Tak jak w języku japońskim, w koreańskim występuje bardzo wiele zapożyczeń z chińskiego (głównie słownictwo i frazeologia). Struktura gramatyczna koreańskiego jest bardzo bliska strukturze japońskiego, co sprawia, że Koreańczycy tak chętnie podejmują naukę języka sąsiedniego kraju.
== Jak zapisuje się ten język? ==
<blockquote width="80%" style="background:#f4f4ff; border: 2px solid #999; border-right-width: 2px">
:
{| border="0" cellpadding="8" align="center"
|-
| colspan="14" | '''Znaki hangulu''' i ich transkrypcja alfabetem łacińskim
|-
| align="center" bgcolor="#C4F0FB" | ㄱ
| align="center" bgcolor="#C4F0FB" | ㄴ
| align="center" bgcolor="#C4F0FB" | ㄷ
| align="center" bgcolor="#C4F0FB" | ㄹ
| align="center" bgcolor="#C4F0FB" | ㅁ
| align="center" bgcolor="#C4F0FB" | ㅂ
| align="center" bgcolor="#C4F0FB" | ㅅ
| align="center" bgcolor="#C4F0FB" | ㅇ
| align="center" bgcolor="#C4F0FB" | ㅈ
| align="center" bgcolor="#C4F0FB" | ㅊ
| align="center" bgcolor="#C4F0FB" | ㅋ
| align="center" bgcolor="#C4F0FB" | ㅌ
| align="center" bgcolor="#C4F0FB" | ㅍ
| align="center" bgcolor="#C4F0FB" | ㅎ
|-
| align="center" | g || align="center" | n
| align="center" | d
| align="center" | l || align="center" | m
| align="center" | b
| align="center" | s || align="center" | -
| align="center" | j
| align="center" | ch || align="center" | k
| align="center" | t
| align="center" | p || align="center" | h
|-
| align="center" bgcolor="#C4F0FB" | ㅏ
| align="center" bgcolor="#C4F0FB" | ㅑ
| align="center" bgcolor="#C4F0FB" | ㅓ
| align="center" bgcolor="#C4F0FB" | ㅕ
| align="center" bgcolor="#C4F0FB" | ㅗ
| align="center" bgcolor="#C4F0FB" | ㅛ
| align="center" bgcolor="#C4F0FB" | ㅜ
| align="center" bgcolor="#C4F0FB" | ㅠ
| align="center" bgcolor="#C4F0FB" | ㅡ
| align="center" bgcolor="#C4F0FB" | ㅣ
|-
| align="center" | a
| align="center" | ya
| align="center" | eo
| align="center" | yeo
| align="center" | o
| align="center" | yo
| align="center" | u
| align="center" | yu
| align="center" | eu
| align="center" | i
|}
</blockquote>
W XV wieku, na polecenie króla Saejonga, grupa uczonych stworzyła koreańskie pismo nazwane hangulem. Alfabet koreański jest uważany za jeden z najbardziej naukowych systemów pisma na świecie. Składa się on z 10 samogłosek i 14 spółgłosek, które w połączeniu tworzą różne sylaby. System ten jest prosty i łatwy do opanowania. Niektórzy twierdzą, iż właśnie te cechy sprawiły, że w Korei jest tak niski poziom analfabetyzmu.
== Jakie dzieła powstały w tym języku? ==
== Jakie jest kilka podstawowych zwrotów w tym języku? ==
{| class="wikitable"
! Zwrot (koreański) !! Wymowa !! Znaczenie (polski) !! Opis
|-
| 안녕하세요 || [annjonghasejo] || Dzień dobry || uprzejme przywitanie
|-
| 안녕 || [annjong] || Cześć || nieformalne powitanie i pożegnanie
|-
| 안녕히 가세요 || [annjonghi gasejo] || Do widzenia || gdy ktoś odchodzi
|-
| 안녕히 계세요 || [annjonghi gjeseyo] || Do widzenia || gdy my odchodzimy
|-
| 잘 지내요? || [dżal dżinejo] || Jak leci? || pytanie o samopoczucie
|-
| 감사합니다 || [kamsahamnida] || Dziękuję || formalne podziękowanie
|-
| 미안합니다 || [mianhamnida] || Przepraszam || uprzejme przeprosiny
|-
| 이름이 뭐예요? || [ireumi młojejo] || Jak masz na imię? || pytanie nieformalne
|-
| 이름은 … 입니다 || [ireumeun … imnida] || Nazywam się… || przedstawianie się
|-
| 네 || [ne] || Tak || odpowiedź twierdząca
|-
| 아니요 || [anio] || Nie || odpowiedź przecząca
|-
| 고양이 || [kojangi] || Kot || zwierzę
|-
| 개 || [ke] || Pies || zwierzę
|}
{{BrClear}}
<noinclude>
{{T|Wikijunior:Języki stopka}}
</noinclude>
h32t5uh38fsq6lj8nvtuocupgwxlm3c
Szablon:TOC/styles.css
10
33442
551923
543342
2026-08-16T05:04:39Z
Persino
2851
Persino zmienił(a) model zawartości strony [[Szablon:TOC/styles.css]] z „Oczyszczony CSS” na „CSS”
551923
css
text/css
/*Style ramki ze spisem szablon [[Szablon:TOC/silnik]]*/
.toc_ogólnie_spis{
text-align:left;
}
.toc_ogólnie_spis ul{
list-style: none;
padding:0;
margin:0;
margin-left:0px;
margin-top:0px;
}
.toc_ogólnie_spis ul ul{
padding:0;
margin:0;
margin-left:0.625em;
margin-top:0px;
}
.toc_ogólnie_spis ul li{
text-indent:0px;
padding:0;
margin:0;
margin-left:0px;
margin-top:0px;
}
/*Dodaję ze względu na nową skórkę Vector-2022*/
.tocnumber{
padding-left: 0;
padding-right: 0.5em;
color: #202122;
padding-left: 0;
padding-right: 0.5em;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.tocnumber, .toctext {
display: table-cell;
text-decoration: inherit;
}
/* Style szablonu [[Szablon:TOC/silnik]] do generowania responsywnego dopasowania do okna ekranu*/
body:not(.skin--responsive) div.kontener_spis_treści{
font-size:14px;
line-height:1.4;
}
body.skin--responsive div.kontener_spis_treści{
font-size:0.875rem;
line-height:1.2;
}
div.kontener_spis_treści{
height:auto;
width:auto;
display:inline-flex !important;
flex-direction:column;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child > th{
width:100%;
padding:0.125em;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści{
height:100%;
width:auto;
display:flex !important;
flex-direction:column;
box-sizing:border-box;
margin:0;
min-height:1.6em;
border-collapse: collapse;
border-spacing:0px;
border:0;
overflow:visible;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
display:flex;
flex-direction:row;
justify-content:space-between;
align-items:normal;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
display:flex;
flex-direction:row;
min-width:11.25em;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > span,
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div:not(.tytuł_spisu_treści){
width:auto !important;
background-color: white;
order:2;
display:block;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div.tytuł_spisu_treści{
width:100% !important;
order:1;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td{
border: 1px #aaaaaa solid;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
z-index:1;
white-space:nowrap;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td{
border-top:0;
z-index:0;
}
div.kontener_spis_treści,
div.kontener_spis_treści > table.spis_treści,
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div ul,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div li{
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
display:flex;
flex-direction:column;
}
div.kontener_spis_treści,
div.kontener_spis_treści > table.spis_treści,
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child > th,
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child{
min-height:1.6em;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child{
height:100%;
min-height:0;
}
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
height:100%;
width:100%;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div ul,
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div ul li{
display:block;
height:auto;
width:auto;
max-width:none;
max-height:none;
box-sizing:border-box;
overflow:visible;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
padding:0.1875em 0.3125em;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div *{
word-wrap: break-word !important;
word-break: break-word !important;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div/*.mw-scrollbar-overflow-y*/{
height:100% !important;
max-height:100% !important;
/*width:100%;*/
max-width:25em;
min-width:auto;
width:auto;
}
html.client-nojs div.kontener_spis_treści{
width:calc(15em + 2 * 1px ) !important;
}
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div,
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
max-width:100% !important;
min-width:auto !important;
width:100% !important;
}
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
overflow:visible !important;
}
div.kontener_spis_treści > table.spis_treści a.zaznaczone,
div.pierwsza_strona_spis_treści > table.spis_treści a.zaznaczone,
div.strona_spisu_treści > .toc_wykaz a.zaznaczone{
color:black;
font-weight:bold;
}
p ~ div.kontener_spis_treści,
div.kontener_spis_treści:first-of-type{
margin-top:0 !important;
}
div.kontener_spis_treści > table.spis_treści.szerokość > tbody > tr:last-child > td > div{
max-width:100% !important;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div a code{
color:unset;
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.kontener_spis_treści,
.opakowanie_kontenera_spis_treści{
margin:0 !important;
margin-bottom:0.3125em !important;
padding:0 !important;
max-width:none !important;
}
.opakowanie_kontenera_spis_treści .kontener_spis_treści{
margin-bottom:0 !important;
}
.opakowanie_kontenera_spis_treści{
float:none !important;
clear:none !important;
}
.opakowanie_kontenera_spis_treści,
.kontener_spis_treści,
.kontener_spis_treści > table,
.kontener_spis_treści > table tbody,
.kontener_spis_treści > table tr,
.kontener_spis_treści > table td,
.kontener_spis_treści > table th{
display:block;
width:100% !important;
}
.kontener_spis_treści > table .toc_ogólnie_spis{
width:100% !important;
max-width:none !important;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
24illk799wk6enl9otm4bjedyyijszd
551924
551923
2026-08-16T05:09:57Z
Persino
2851
551924
css
text/css
/*Style ramki ze spisem szablon [[Szablon:TOC/silnik]]*/
.toc_ogólnie_spis{
text-align:left;
}
.toc_ogólnie_spis ul{
list-style: none;
padding:0;
margin:0;
margin-left:0px;
margin-top:0px;
}
.toc_ogólnie_spis ul ul{
padding:0;
margin:0;
margin-left:0.625em;
margin-top:0px;
}
.toc_ogólnie_spis ul li{
text-indent:0px;
padding:0;
margin:0;
margin-left:0px;
margin-top:0px;
}
/*Dodaję ze względu na nową skórkę Vector-2022*/
.tocnumber{
padding-left: 0;
padding-right: 0.5em;
color: #202122;
padding-left: 0;
padding-right: 0.5em;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.tocnumber, .toctext {
display: table-cell;
text-decoration: inherit;
}
/* Style szablonu [[Szablon:TOC/silnik]] do generowania responsywnego dopasowania do okna ekranu*/
body:not(.skin--responsive) div.kontener_spis_treści{
font-size:14px;
line-height:1.4;
}
body.skin--responsive div.kontener_spis_treści{
font-size:0.875rem;
line-height:1.2;
}
div.kontener_spis_treści{
height:auto;
width:auto;
display:inline-flex !important;
flex-direction:column;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child > th{
width:100%;
padding:0.125em;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści{
height:100%;
width:auto;
display:flex !important;
flex-direction:column;
box-sizing:border-box;
margin:0;
min-height:1.6em;
border-collapse: collapse;
border-spacing:0px;
border:0;
overflow:visible;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
display:flex;
flex-direction:row;
justify-content:space-between;
align-items:normal;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
display:flex;
flex-direction:row;
min-width:11.25em;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > span,
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div:not(.tytuł_spisu_treści){
width:auto !important;
background-color: white;
order:2;
display:block;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div.tytuł_spisu_treści{
width:100% !important;
order:1;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td{
border: 1px #aaaaaa solid;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
z-index:1;
white-space:nowrap;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td{
border-top:0;
z-index:0;
}
div.kontener_spis_treści,
div.kontener_spis_treści > table.spis_treści,
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div ul,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div li{
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
display:flex;
flex-direction:column;
}
div.kontener_spis_treści,
div.kontener_spis_treści > table.spis_treści,
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child > th,
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child{
min-height:1.6em;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child{
height:100%;
min-height:0;
}
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
height:100%;
width:100%;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div ul,
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div ul li{
display:block;
height:auto;
width:auto;
max-width:none;
max-height:none;
box-sizing:border-box;
overflow:visible;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
padding:0.1875em 0.3125em;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div *{
word-wrap: break-word !important;
word-break: break-word !important;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div/*.mw-scrollbar-overflow-y*/{
height:100% !important;
max-height:100% !important;
/*width:100%;*/
max-width:25em;
min-width:auto;
width:auto;
}
html.client-nojs div.kontener_spis_treści{
width:calc(15em + 2 * 1px ) !important;
}
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div,
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
max-width:100% !important;
min-width:auto !important;
width:100% !important;
}
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
overflow:visible !important;
}
div.kontener_spis_treści > table.spis_treści a.zaznaczone,
div.pierwsza_strona_spis_treści > table.spis_treści a.zaznaczone,
div.strona_spisu_treści > .toc_wykaz a.zaznaczone{
color:black;
font-weight:bold;
}
p ~ div.kontener_spis_treści,
div.kontener_spis_treści:first-of-type{
margin-top:0 !important;
}
div.kontener_spis_treści > table.spis_treści.szerokość > tbody > tr:last-child > td > div{
max-width:100% !important;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div a code{
color:unset;
}
div..opakowanie_kontenera_spis_treści:has(ul:empty()){
display:none;
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.kontener_spis_treści,
.opakowanie_kontenera_spis_treści{
margin:0 !important;
margin-bottom:0.3125em !important;
padding:0 !important;
max-width:none !important;
}
.opakowanie_kontenera_spis_treści .kontener_spis_treści{
margin-bottom:0 !important;
}
.opakowanie_kontenera_spis_treści{
float:none !important;
clear:none !important;
}
.opakowanie_kontenera_spis_treści,
.kontener_spis_treści,
.kontener_spis_treści > table,
.kontener_spis_treści > table tbody,
.kontener_spis_treści > table tr,
.kontener_spis_treści > table td,
.kontener_spis_treści > table th{
display:block;
width:100% !important;
}
.kontener_spis_treści > table .toc_ogólnie_spis{
width:100% !important;
max-width:none !important;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
c4892mbqattanx34ywigb4zjryqj5h4
551925
551924
2026-08-16T05:11:47Z
Persino
2851
551925
css
text/css
/*Style ramki ze spisem szablon [[Szablon:TOC/silnik]]*/
.toc_ogólnie_spis{
text-align:left;
}
.toc_ogólnie_spis ul{
list-style: none;
padding:0;
margin:0;
margin-left:0px;
margin-top:0px;
}
.toc_ogólnie_spis ul ul{
padding:0;
margin:0;
margin-left:0.625em;
margin-top:0px;
}
.toc_ogólnie_spis ul li{
text-indent:0px;
padding:0;
margin:0;
margin-left:0px;
margin-top:0px;
}
/*Dodaję ze względu na nową skórkę Vector-2022*/
.tocnumber{
padding-left: 0;
padding-right: 0.5em;
color: #202122;
padding-left: 0;
padding-right: 0.5em;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.tocnumber, .toctext {
display: table-cell;
text-decoration: inherit;
}
/* Style szablonu [[Szablon:TOC/silnik]] do generowania responsywnego dopasowania do okna ekranu*/
body:not(.skin--responsive) div.kontener_spis_treści{
font-size:14px;
line-height:1.4;
}
body.skin--responsive div.kontener_spis_treści{
font-size:0.875rem;
line-height:1.2;
}
div.kontener_spis_treści{
height:auto;
width:auto;
display:inline-flex !important;
flex-direction:column;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child > th{
width:100%;
padding:0.125em;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści{
height:100%;
width:auto;
display:flex !important;
flex-direction:column;
box-sizing:border-box;
margin:0;
min-height:1.6em;
border-collapse: collapse;
border-spacing:0px;
border:0;
overflow:visible;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
display:flex;
flex-direction:row;
justify-content:space-between;
align-items:normal;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
display:flex;
flex-direction:row;
min-width:11.25em;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > span,
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div:not(.tytuł_spisu_treści){
width:auto !important;
background-color: white;
order:2;
display:block;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div.tytuł_spisu_treści{
width:100% !important;
order:1;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td{
border: 1px #aaaaaa solid;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
z-index:1;
white-space:nowrap;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td{
border-top:0;
z-index:0;
}
div.kontener_spis_treści,
div.kontener_spis_treści > table.spis_treści,
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div ul,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div li{
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
display:flex;
flex-direction:column;
}
div.kontener_spis_treści,
div.kontener_spis_treści > table.spis_treści,
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child > th,
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child{
min-height:1.6em;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child{
height:100%;
min-height:0;
}
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
height:100%;
width:100%;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div ul,
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div ul li{
display:block;
height:auto;
width:auto;
max-width:none;
max-height:none;
box-sizing:border-box;
overflow:visible;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
padding:0.1875em 0.3125em;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div *{
word-wrap: break-word !important;
word-break: break-word !important;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div/*.mw-scrollbar-overflow-y*/{
height:100% !important;
max-height:100% !important;
/*width:100%;*/
max-width:25em;
min-width:auto;
width:auto;
}
html.client-nojs div.kontener_spis_treści{
width:calc(15em + 2 * 1px ) !important;
}
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div,
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
max-width:100% !important;
min-width:auto !important;
width:100% !important;
}
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
overflow:visible !important;
}
div.kontener_spis_treści > table.spis_treści a.zaznaczone,
div.pierwsza_strona_spis_treści > table.spis_treści a.zaznaczone,
div.strona_spisu_treści > .toc_wykaz a.zaznaczone{
color:black;
font-weight:bold;
}
p ~ div.kontener_spis_treści,
div.kontener_spis_treści:first-of-type{
margin-top:0 !important;
}
div.kontener_spis_treści > table.spis_treści.szerokość > tbody > tr:last-child > td > div{
max-width:100% !important;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div a code{
color:unset;
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.kontener_spis_treści,
.opakowanie_kontenera_spis_treści{
margin:0 !important;
margin-bottom:0.3125em !important;
padding:0 !important;
max-width:none !important;
}
.opakowanie_kontenera_spis_treści .kontener_spis_treści{
margin-bottom:0 !important;
}
.opakowanie_kontenera_spis_treści{
float:none !important;
clear:none !important;
}
.opakowanie_kontenera_spis_treści,
.kontener_spis_treści,
.kontener_spis_treści > table,
.kontener_spis_treści > table tbody,
.kontener_spis_treści > table tr,
.kontener_spis_treści > table td,
.kontener_spis_treści > table th{
display:block;
width:100% !important;
}
.kontener_spis_treści > table .toc_ogólnie_spis{
width:100% !important;
max-width:none !important;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
24illk799wk6enl9otm4bjedyyijszd
551926
551925
2026-08-16T05:12:19Z
Persino
2851
Persino zmienił(a) model zawartości strony [[Szablon:TOC/styles.css]] z „CSS” na „Oczyszczony CSS”
551926
sanitized-css
text/css
/*Style ramki ze spisem szablon [[Szablon:TOC/silnik]]*/
.toc_ogólnie_spis{
text-align:left;
}
.toc_ogólnie_spis ul{
list-style: none;
padding:0;
margin:0;
margin-left:0px;
margin-top:0px;
}
.toc_ogólnie_spis ul ul{
padding:0;
margin:0;
margin-left:0.625em;
margin-top:0px;
}
.toc_ogólnie_spis ul li{
text-indent:0px;
padding:0;
margin:0;
margin-left:0px;
margin-top:0px;
}
/*Dodaję ze względu na nową skórkę Vector-2022*/
.tocnumber{
padding-left: 0;
padding-right: 0.5em;
color: #202122;
padding-left: 0;
padding-right: 0.5em;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.tocnumber, .toctext {
display: table-cell;
text-decoration: inherit;
}
/* Style szablonu [[Szablon:TOC/silnik]] do generowania responsywnego dopasowania do okna ekranu*/
body:not(.skin--responsive) div.kontener_spis_treści{
font-size:14px;
line-height:1.4;
}
body.skin--responsive div.kontener_spis_treści{
font-size:0.875rem;
line-height:1.2;
}
div.kontener_spis_treści{
height:auto;
width:auto;
display:inline-flex !important;
flex-direction:column;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child > th{
width:100%;
padding:0.125em;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści{
height:100%;
width:auto;
display:flex !important;
flex-direction:column;
box-sizing:border-box;
margin:0;
min-height:1.6em;
border-collapse: collapse;
border-spacing:0px;
border:0;
overflow:visible;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
display:flex;
flex-direction:row;
justify-content:space-between;
align-items:normal;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
display:flex;
flex-direction:row;
min-width:11.25em;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > span,
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div:not(.tytuł_spisu_treści){
width:auto !important;
background-color: white;
order:2;
display:block;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div.tytuł_spisu_treści{
width:100% !important;
order:1;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td{
border: 1px #aaaaaa solid;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > th{
z-index:1;
white-space:nowrap;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td{
border-top:0;
z-index:0;
}
div.kontener_spis_treści,
div.kontener_spis_treści > table.spis_treści,
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div ul,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div li{
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
display:flex;
flex-direction:column;
}
div.kontener_spis_treści,
div.kontener_spis_treści > table.spis_treści,
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child > th,
div.kontener_spis_treści > table.spis_treści > tbody > tr:first-child{
min-height:1.6em;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child{
height:100%;
min-height:0;
}
div.kontener_spis_treści > table.spis_treści > tbody,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td,
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
height:100%;
width:100%;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div ul,
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div ul li{
display:block;
height:auto;
width:auto;
max-width:none;
max-height:none;
box-sizing:border-box;
overflow:visible;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
padding:0.1875em 0.3125em;
box-sizing:border-box;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div *{
word-wrap: break-word !important;
word-break: break-word !important;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div/*.mw-scrollbar-overflow-y*/{
height:100% !important;
max-height:100% !important;
/*width:100%;*/
max-width:25em;
min-width:auto;
width:auto;
}
html.client-nojs div.kontener_spis_treści{
width:calc(15em + 2 * 1px ) !important;
}
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > th > div,
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
max-width:100% !important;
min-width:auto !important;
width:100% !important;
}
html.client-nojs div.kontener_spis_treści > table.spis_treści > tbody > tr > td > div{
overflow:visible !important;
}
div.kontener_spis_treści > table.spis_treści a.zaznaczone,
div.pierwsza_strona_spis_treści > table.spis_treści a.zaznaczone,
div.strona_spisu_treści > .toc_wykaz a.zaznaczone{
color:black;
font-weight:bold;
}
p ~ div.kontener_spis_treści,
div.kontener_spis_treści:first-of-type{
margin-top:0 !important;
}
div.kontener_spis_treści > table.spis_treści.szerokość > tbody > tr:last-child > td > div{
max-width:100% !important;
}
div.kontener_spis_treści > table.spis_treści > tbody > tr:last-child > td > div a code{
color:unset;
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.kontener_spis_treści,
.opakowanie_kontenera_spis_treści{
margin:0 !important;
margin-bottom:0.3125em !important;
padding:0 !important;
max-width:none !important;
}
.opakowanie_kontenera_spis_treści .kontener_spis_treści{
margin-bottom:0 !important;
}
.opakowanie_kontenera_spis_treści{
float:none !important;
clear:none !important;
}
.opakowanie_kontenera_spis_treści,
.kontener_spis_treści,
.kontener_spis_treści > table,
.kontener_spis_treści > table tbody,
.kontener_spis_treści > table tr,
.kontener_spis_treści > table td,
.kontener_spis_treści > table th{
display:block;
width:100% !important;
}
.kontener_spis_treści > table .toc_ogólnie_spis{
width:100% !important;
max-width:none !important;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
24illk799wk6enl9otm4bjedyyijszd
Śpiewnik
0
54239
551931
551820
2026-08-16T08:54:50Z
Ashaio
4702
+3
551931
wikitext
text/x-wiki
__NOTOC__ {{Status|-100%|Muzyka}}
== Wprowadzenie ==
Śpiewnik zawiera wyłącznie utwory na wolnych licencjach oraz takie, do których majątkowe prawa autorskie wygasły (utwory z domeny publicznej).
Preferowaną formą zapisu muzycznego jest tzw. ''lead sheet'', tzn. nutowy zapis melodii jednogłosowej oraz schematyczny zapis towarzyszących akordów. Mile widziane są aranżacje wielogłosowe oraz na głos i fortepian – koniecznie oparte na źródłach.
W spisie treści piosenki podane są w kolejności alfabetycznej. W materiałach dodatkowych można umieścić indeksy chronologiczne, tematyczne itp.
== Pieśni i piosenki ==
{{Kolumny|3|
# {{sr|A w Krakowie na ulicy}}
# {{sr|Aaa, kotki dwa}}
# {{sr|Akademik ci ja}}
# {{sr|Alpuhara}}
# {{sr|Anioł pasterzom mówił}}
# {{sr|Auld Lang Syne}}
# {{sr|Bartoszu, Bartoszu}}
# {{sr|Bogurodzica}}
# {{sr|Boże, coś Polskę}}
# {{sr|Boże wieczny, Boże żywy}}
# {{sr|Bóg się rodzi}}
# {{sr|Bracia, nuż do koła}}
# {{sr|Był Matysek chłop przed laty}}
# {{sr|Bywaj dziewczę zdrowe}}
# {{sr|Choć burza huczy wkoło nas}}
# {{sr|Choćbym ja jeździł we dnie i w nocy}}
# {{sr|Cicha noc}}
# {{sr|Czarna sukienka}}
# {{sr|Czerwone jabłuszko}}
# {{sr|Czerwony pas}}
# {{sr|Cześć polskiej ziemi, cześć}}
# {{sr|Cztery rzeczy w Polsce słyną}}
# {{sr|Dajcież mi kielicha}}
# {{sr|Dalibóg, że powiem mamie}}
# {{sr|Deutschlandlied}}
# {{sr|Do pracy, razem do pracy}}
# {{sr|Duma ukrainna}}
# {{sr|Dzisiaj w Betlejem}}
# {{sr|Gaude mater}}
# {{sr|Gaudeamus igitur}}
# {{sr|Gdy się Chrystus rodzi}}
# {{sr|Gdym z kozaki szedł na boje}}
# {{sr|Gdzież to jedziesz Jasiu}}
# {{sr|God Save the King}}
# {{sr|Góralu, czy ci nie żal}}
# {{sr|Greensleeves}}
# {{sr|Haniu moja, pójdź do domu}}
# {{sr|Hatikvah}}
# {{sr|Hej, bracia opryszki}}
# {{sr|Hej hej, hej hej, do kniej, do kniej}}
# {{sr|Hej koledzy, dalej żywo}}
# {{sr|Hej koledzy, po mozołach}}
# {{sr|Hej koledzy, z wspólnej czary}}
# {{sr|Hej, z góry, z góry jadą Mazury}}
# {{sr|Hej, żeglujże, żeglarzu}}
# {{sr|Idzie żołnierz borem, lasem}}
# {{sr|Idź głosie po rosie, daj dziewczynie wiadę}}
# {{sr|Integer vitae}}
# {{sr|Jak dobrze nam}}
# {{sr|Jak to na wojence ładnie}}
# {{sr|Jesienią}}
# {{sr|Jeszcze jeden mazur dzisiaj}}
# {{sr|Jezus malusieńki}}
# {{sr|Kiedy będzie słońce i pogoda}}
# {{sr|Kochajmy się}}
# {{sr|Koło mego ogródeczka}}
# {{sr|Kołysanka Brahmsa}}
# {{sr|Kołyszże się, kołysz}}
# {{sr|Komu dzwonią, temu dzwonią}}
# {{sr|Kot kot pani matko}}
# {{sr|Kiedy nam się pora zdarza}}
# {{sr|Krakowianka i kat}}
# {{sr|Kto się w opiekę}}
# {{sr|Kukułeczka}}
# {{sr|Kurdesz}}
# {{sr|Laura i Filon}}
# {{sr|Leci liście z drzewa}}
# {{sr|Leć głosie po rosie, po niskiej leszczynie}}
# {{sr|Leć głosie po rosie, prosto ku traktowi}}
# {{sr|Lilie}}
# {{sr|Lulajże, Jezuniu}}
# {{sr|Lutni moja ulubiona}}
# {{sr|Małgorzatka}}
# {{sr|Marsylianka}}
# {{sr|Marsz, marsz Polonia}}
# {{sr|Marzenie o grajku}}
# {{sr|Mazurek Dąbrowskiego}}
# {{sr|Me lube dziewczę}}
# {{sr|Mędrcy świata monarchowie}}
# {{sr|Mizerna, cicha}}
# {{sr|Na dolinie zawierucha}}
# {{sr|Ne chody Hryciu na weczernyci}}
# {{sr|Nie tak in illo tempore bywało|Nie tak ''in illo tempore'' bywało}}
# {{sr|O, gwiazdeczko, coś błyszczała}}
# {{sr|O, gwiazdeczko, coś świeciła}}
# {{sr|O Matko Polko}}
# {{sr|O mój rozmarynie}}
# {{sr|Obie kochał pan}}
# {{sr|Oda do radości}}
# {{sr|Ogródek}}
# {{sr|Oj, chmielu, chmielu}}
# {{sr|Oj ty horo kamennaja}}
# {{sr|Ojcze z niebios Boże Panie}}
# {{sr|Ospały i gnuśny, zgrzybiały ten świat}}
# {{sr|Ozdobo twarzy, pokrętne wąsy}}
# {{sr|Panicz i dziewczyna}}
# {{sr|Pieśń poranna}} (Kiedy ranne wstają zorze...)
# {{sr|Pieśń wieczorna}} (Wszystkie nasze dzienne sprawy...)
# {{sr|Piękna nasza Polska cała}}
# {{sr|Pije Kuba do Jakuba}}
# {{sr|Płynie Wisła, płynie}}
# {{sr|Po cóż ciągle w mieście siedzieć}}
# {{sr|Po nocnej rosie płyń dźwięczny głosie}}
# {{sr|Podolanka}}
# {{sr|Pojedziemy na łów}}
# {{sr|Polak nie sługa}}
# {{sr|Polska młodzież niech nam żyje}}
# {{sr|Polski przemysł niech nam żyje}}
# {{sr|Potężny Boże}}
# {{sr|Pożegnanie Childe Harolda}}
# {{sr|Precz, precz od nas smutek wszelki}}
# {{sr|Prząśniczka}}
# {{sr|Przybieżeli do Betlejem}}
# {{sr|Przybyli ułani pod okienko}}
# {{sr|Przyjechał Jasieńko}}
# {{sr|Rok się kochali}}
# {{sr|Rota}}
# {{sr|Rześko, żwawo, stuku puku }}
# {{sr|Sadźmy, przyjacielu, róże}}
# {{sr|Serce nie sługa}}
# {{sr|Serdeczna Matko}}
# {{sr|Siedzi sobie zając pod miedzą}}
# {{sr|Służył Jasio u pana}}
# {{sr|Słynie Gopło i Kruszwica }}
# {{sr|Spuśćcie nam na ziemskie niwy}}
# {{sr|Staropolskie zaloty}}
# {{sr|Szła dzieweczka}}
# {{sr|Szynkareczko, szafareczko}}
# {{sr|Śliczne gwoździki, piękne tulipany }}
# {{sr|Śnieżyca}}
# {{sr|Śród opok i jarów}}
# {{sr|Świeci miesiąc, świeci}}
# {{sr|Święta miłości kochanej ojczyzny}}
# {{sr|Świtezianka}}
# {{sr|Tam na błoniu błyszczy kwiecie}}
# {{sr|Ten mem zdaniem dobrze żyje}}
# {{sr|To są czary}}
# {{sr|Trzech Budrysów}}
# {{sr|Ty pójdziesz górą}}
# {{sr|Umarł Maciek, umarł}}
# {{sr|Upływa szybko życie}}
# {{sr|Uśnijże mi, uśnij}}
# {{sr|Użyjmy dziś żywota}}
# {{sr|W krwawem polu srebrne ptaszę}}
# {{sr|Veni Creator}}
# {{sr|W głos serdeczna dumka płynie }}
# {{sr|W morzu przegląda się gwiazda srebrzysta}}
# {{sr|W murowanej piwnicy}}
# {{sr|W ogrodzie na wodzie}}
# {{sr|W okolicznem mieście}}
# {{sr|W polu}}
# {{sr|W polu lipeńka}}
# {{sr|W tył wyloty, w górę wąsy}}
# {{sr|W żłobie leży}}
# {{sr|Wesoło, bracia, wesoło}}
# {{sr|Wesoło żeglujmy, wesoło}}
# {{sr|Wesoły nam dziś dzień nastał}}
# {{sr|Wezmę ja skrzypki}}
# {{sr|Witaj gwiazdko złota}}
# {{sr|Witaj majowa jutrzenko}}
# {{sr|Wojenko, wojenko}}
# {{sr|Wszystkich dziś ciekawość budzi}}
# {{sr|Za Ebru falą}}
# {{sr|Za Niemen het precz}}
# {{sr|Zagrzmiał mazur, w górę wąsy}}
# {{sr|Zajączek}}
# {{sr|Zdrowaś bądź Maryja}}
# {{sr|Zgoda Sejmu to sprawiła}}
# {{sr|Zielona łączka, żółty na niej kwiat}}
# {{sr|Zielony dzban}}
# {{sr|Zła zima}}
# {{sr|Znaszli ten kraj}}
# {{sr|Żal, żal za jedyną}}
# {{sr|Życzenie}}
# {{sr|Дзюба}}
# {{sr|Їхав козак за Дунай}}
# {{sr|Ще не вмерла України і слава, і воля}}
}}
== Materiały dodatkowe ==
* {{sr|Bibliografia}}
* {{sr|Indeks tematyczny}}
10br27asa3l6a0m0mwburrb7swzb2bd
Szablon:Plik
10
56001
551958
550471
2026-08-16T11:36:33Z
Persino
2851
551958
wikitext
text/x-wiki
<includeonly><!--
-->{{#if:{{{rys|}}}||<templatestyles src="Moduł:Plik/styles.css" />}}<!--
-->{{#invoke:Plik|Plik}}<!--
-->{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry
| rys = txt
| = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s %s do sprawdzenia{{))}}
| plik = grafika*!;1
| 1 = grafika*!;plik
| ramka = ^mały${{!}}^duży${{!}}^bezramki$
| rozmiar = rozmiar*
| pozycja = ^lewo${{!}}^prawo${{!}}^centruj${{!}}^brak$
| auto = txt
| skala = ^%d+${{!}}^%d+%.%d+$
| alt =
| link =
| opis =
| nomobile = txt
| nomedia = txt
| id = txt
| styl =
| klasa =
}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
e5ny5x79zwwhd2vlehl85us6s3qjbi1
Śpiewnik/Indeks tematyczny
0
56092
551932
551821
2026-08-16T08:59:16Z
Ashaio
4702
+3 (1 z nich w 2 kategoriach)
551932
wikitext
text/x-wiki
<noinclude>__NOTOC__{{ProstaStronaStart}}</noinclude>
Poniższe grupy nie są rozłączne (piosenka może należeć do więcej niż jednej kategorii).
{{Tabela|atrybuty=cellspacing="10" width="100%"|liczba wierszy=10|liczba kolumn=2|pozycja=brak|klasa op=siatka-mobilna tabela-szerokość
|bez pionu 1_1=tak|opcje 1_1=width="50%"
|bez pionu 1_2=tak|opcje 1_2=width="50%"
|komórka 1_1={{Pudełko komórkowe 1|tytuł= Pieśni patriotyczne
|grafika=
|tekst= * {{sr|Bogurodzica}}
* {{sr|Boże, coś Polskę}}
* {{sr|Czarna sukienka}}
* {{sr|Cześć polskiej ziemi, cześć}}
* {{sr|Cztery rzeczy w Polsce słyną}}
* {{sr|Leci liście z drzewa}}
* {{sr|Marsz, marsz Polonia}}
* {{sr|Mazurek Dąbrowskiego}}
* {{sr|O Matko Polko}}
* {{sr|Rota}}
* {{sr|Święta miłości kochanej ojczyzny}}
* {{sr|Witaj majowa jutrzenko}}
* {{sr|Zgoda Sejmu to sprawiła}}
}}
|komórka 1_2={{Pudełko komórkowe 3|tytuł= Piosenki wojskowe
|grafika=
|tekst=* {{sr|Bartoszu, Bartoszu}}
* {{sr|Bywaj dziewczę zdrowe}}
* {{sr|Duma ukrainna}}
* {{sr|Gdzież to jedziesz Jasiu}}
* {{sr|Idzie żołnierz borem, lasem}}
* {{sr|Jak to na wojence ładnie}}
* {{sr|Jeszcze jeden mazur dzisiaj}}
* {{sr|O mój rozmarynie}}
* {{sr|Przybyli ułani pod okienko}}
* {{sr|Tam na błoniu błyszczy kwiecie}}
* {{sr|W krwawem polu srebrne ptaszę}}
* {{sr|Wojenko, wojenko}}
* {{sr|Za Niemen het precz}}
}}
|komórka 2_1={{Pudełko komórkowe 2
|tytuł= Pieśni nabożne
|grafika=
|tekst= {{Wikiźródła|Śpiewnik kościelny}}
* {{sr|Boże wieczny, Boże żywy}}
* {{sr|Gaude mater}}
* {{sr|Kto się w opiekę}}
* {{sr|Ojcze z niebios Boże Panie}}
* {{sr|Pieśń poranna}}
* {{sr|Pieśń wieczorna}}
* {{sr|Potężny Boże}}
* {{sr|Serdeczna Matko}}
* {{sr|Spuśćcie nam na ziemskie niwy}}
* {{sr|Veni Creator}}
* {{sr|Wesoły nam dziś dzień nastał}}
* {{sr|Zdrowaś bądź Maryja}}
}}
|komórka 2_2={{Pudełko komórkowe 4|tytuł= Kolędy
|grafika=
|tekst={{Wikiźródła|Wikitomik:Kancjonał bożonarodzeniowy... przez Wikiskrybów zebrany|Kancjonał bożonarodzeniowy}}
{{Commons|Polish_Christmas_carols|Polish Christmas carols}}
* {{sr|Anioł pasterzom mówił}}
* {{sr|Bóg się rodzi}}
* {{sr|Cicha noc}}
* {{sr|Dzisiaj w Betlejem}}
* {{sr|Gdy się Chrystus rodzi}}
* {{sr|Jezus malusieńki}}
* {{sr|Lulajże, Jezuniu}}
* {{sr|Mędrcy świata monarchowie}}
* {{sr|Mizerna, cicha}}
* {{sr|O, gwiazdeczko, coś świeciła}}
* {{sr|Przybieżeli do Betlejem}}
* {{sr|W żłobie leży}}
* {{sr|Witaj gwiazdko złota}}
}}
|komórka 3_1={{Pudełko komórkowe 1|tytuł= Piosenki i melodie ludowe
|grafika=
|tekst=* {{sr|Choćbym ja jeździł we dnie i w nocy}}
* {{sr|Czerwone jabłuszko}}
* {{sr|Hej, z góry, z góry jadą Mazury}}
* {{sr|Idź głosie po rosie, daj dziewczynie wiadę}}
* {{sr|Kiedy będzie słońce i pogoda}}
* {{sr|Koło mego ogródeczka}}
* {{sr|Leć głosie po rosie, po niskiej leszczynie}}
* {{sr|Leć głosie po rosie, prosto ku traktowi }}
* {{sr|Oj, chmielu, chmielu}}
* {{sr|Oj ty horo kamennaja}}
* {{sr|Piękna nasza Polska cała}}
* {{sr|Płynie Wisła, płynie}}
* {{sr|Szła dzieweczka}}
* {{sr|Świeci miesiąc, świeci}}
* {{sr|Umarł Maciek, umarł}}
* {{sr|W murowanej piwnicy}}
* {{sr|W polu lipeńka}}
* {{sr|Zakochali się}}
* {{sr|Zielona łączka, żółty na niej kwiat}}
}}
|komórka 3_2={{Pudełko komórkowe 3|tytuł= Piosenki dla dzieci
|grafika=
|tekst= {{Wikiźródła|Śpiewnik dla dzieci}}
* {{sr|Jesienią}}
* {{sr|Kukułeczka}}
* {{sr|Ogródek}}
* {{sr|Sokół}}
* {{sr|Śnieżyca}}
* {{sr|Taniec}}
* {{sr|W polu}}
* {{sr|Zajączek}}
* {{sr|Zła zima}}
'''Kołysanki:'''
* {{sr|Aaa, kotki dwa}}
* {{sr|Kołysanka Brahmsa }}
* {{sr|Kołyszże się, kołysz}}
* {{sr|Uśnijże mi, uśnij}}
}}
|komórka 4_1={{Pudełko komórkowe 2
|tytuł= Piosenki o miłości
|grafika=
|tekst=* {{sr|Dalibóg, że powiem mamie}}
* {{sr|Kiedy będzie słońce i pogoda}}
* {{sr|Kot kot pani matko}}
* {{sr|Laura i Filon}}
* {{sr|Marzenie o grajku}}
* {{sr|Me lube dziewczę}}
* {{sr|Panicz i dziewczyna}}
* {{sr|Rok się kochali}}
* {{sr|Serce nie sługa}}
* {{sr|Śliczne gwoździki, piękne tulipany}}
* {{sr|Staropolskie zaloty}}
* {{sr|To są czary}}
* {{sr|Ty pójdziesz górą}}
* {{sr|Z wysokich Parnasów}}
* {{sr|Za Niemen het precz}}
* {{sr|Zakochali się}}
* {{sr|Zielona łączka, żółty na niej kwiat}}
* {{sr|Życzenie}}
}}
|komórka 4_2={{Pudełko komórkowe 4
|tytuł= Piosenki „młodzieżowe”
|grafika=
|tekst=* {{sr|Akademik ci ja}}
* {{sr|Gaudeamus igitur}}
* {{sr|Hej koledzy, dalej żywo}}
* {{sr|Hej koledzy, po mozołach}}
* {{sr|Hej koledzy, z wspólnej czary}}
* {{sr|Ospały i gnuśny, zgrzybiały ten świat}}
* {{sr|Po cóż ciągle w mieście siedzieć}}
* {{sr|Po nocnej rosie płyń dźwięczny głosie}}
* {{sr|Polska młodzież niech nam żyje}}
* {{sr|Precz, precz od nas smutek wszelki}}
* {{sr|Sadźmy, przyjacielu, róże}}
* {{sr|Szła dzieweczka}}
* {{sr|Upływa szybko życie}}
* {{sr|Użyjmy dziś żywota}}
* {{sr|Żal, żal za jedyną}}
}}
|komórka 5_1={{Pudełko komórkowe 1|tytuł= Piosenki biesiadne
|grafika=
|tekst= * {{sr|Bracia, nuż do koła}}
* {{sr|Dajcież mi kielicha}}
* {{sr|Góralu, czy ci nie żal}}
* {{sr|Kiedy nam się pora zdarza}}
* {{sr|Kochajmy się}}
* {{sr|Komu dzwonią, temu dzwonią}}
* {{sr|Kurdesz}}
* {{sr|Małgorzatka}}
* {{sr|Pije Kuba do Jakuba}}
* {{sr|Precz, precz od nas smutek wszelki}}
* {{sr|Szlachetne zdrowie}}
* {{sr|Szła dzieweczka}}
* {{sr|Szynkareczko, szafareczko}}
* {{sr|Ten mem zdaniem dobrze żyje}}
* {{sr|Wdzięczna miłości kochanej szklanice }}
* {{sr|Wesoło, bracia, wesoło}}
}}
|komórka 5_2={{Pudełko komórkowe 3|tytuł= Pieśni zadumy i tęsknoty. Pożegnania
|grafika=
|tekst= * {{sr|Znaszli ten kraj}}
'''Tęsknota za ukochaną/ukochanym:'''
* {{sr|Gdym z kozaki szedł na boje}}
* {{sr|Za Niemen het precz}}
* {{sr|Żal, żal za jedyną}}
'''Tęsknota za przeszłością:'''
* {{sr|Cieszmy się bracia nadzieją}}
* {{sr|Na dolinie zawierucha}}
* {{sr|Nie tak in illo tempore bywało|Nie tak ''in illo tempore'' bywało}}
* {{sr|O, gwiazdeczko, coś błyszczała}}
* {{sr|Ozdobo twarzy, pokrętne wąsy}}
* {{sr|W tył wyloty, w górę wąsy}}
* {{sr|Zagrzmiał mazur, w górę wąsy}}
* {{sr|Zgoda Sejmu to sprawiła}}
'''Tęsknota za krajem rodzinnym:'''
* {{sr|Góralu, czy ci nie żal}}
* {{sr|Pożegnanie Childe Harolda}}
* {{sr|Sokół}}
* {{sr|W głos serdeczna dumka płynie}}
}}
|komórka 6_1={{Pudełko komórkowe 2
|tytuł= Dumki i ballady
|grafika=
|tekst='''Ballady literackie:'''
* {{sr|Alpuhara}}
* {{sr|Lilie}}
* {{sr|Obie kochał pan}}
* {{sr|Świtezianka}}
* {{sr|Trzech Budrysów}}
'''Ballady ludowe:'''
* {{sr|A w Krakowie na ulicy}}
* {{sr|Haniu moja, pójdź do domu}}
* {{sr|Krakowianka i kat}}
* {{sr|Podolanka}}
* {{sr|Przyjechał Jasieńko}}
* {{sr|Służył Jasio u pana}}
* {{sr|Stała nam się nowina}} → {{sr|Lilie}}
* {{sr|W okolicznem mieście}}
* {{sr|Zielony dzban}}
}}
|komórka 6_2={{Pudełko komórkowe 4|tytuł= Piosenki wędrówkowe
|grafika=
|tekst=
* {{sr|Zielona łączka, żółty na niej kwiat}}
'''Piosenki łowieckie:'''
* {{sr|Hej hej, hej hej, do kniej, do kniej}}
* {{sr|Pojedziemy na łów}}
* {{sr|Siedzi sobie zając pod miedzą}}
* {{sr|Szła dzieweczka}}
* {{sr|Śród opok i jarów}}
* {{sr|Zajączek}}
'''Piosenki żeglarskie:'''
* {{sr|Choć burza huczy wkoło nas}}
* {{sr|Hej, żeglujże, żeglarzu}}
* {{sr|W morzu przegląda się gwiazda srebrzysta}}
* {{sr|Wesoło żeglujmy, wesoło}}
'''Piosenki o górach:'''
* {{sr|Czerwony pas}}
* {{sr|Góralu, czy ci nie żal}}
* {{sr|Jak dobrze nam}}
'''Piosenki zbójeckie'''
* {{sr|Hej, bracia opryszki}}
* {{sr|Me lube dziewczę}}
'''Piosenki o Cyganach'''
* {{sr|Za Ebru falą}}
}}
|komórka 7_1={{Pudełko komórkowe 1|tytuł= Hymny i hejnały
|grafika=
|tekst= * {{sr|Mazurek Dąbrowskiego}} (hymn Polski)
* {{sr|Deutschlandlied}} (hymn Niemiec)
* {{sr|God Save the King}} (hymn Wielkiej Brytanii)
* {{sr|Hatikvah}} (hymn Izraela)
* {{sr|Marsylianka}} (hymn Francji)
* {{sr|Oda do radości}} (hymn Unii Europejskiej)
* {{sr|Ще не вмерла України і слава, і воля}} (hymn Ukrainy)
}}
|komórka 7_2={{Pudełko komórkowe 3|tytuł= Pieśni (o) pracy
|grafika=
|tekst=* {{sr|Do pracy, razem do pracy}}
* {{sr|Nad mularską profesyą}} (pieśń murarza)
* {{sr|Polski przemysł niech nam żyje}}
* {{sr|Prząśniczka}}
* {{sr|Rześko, żwawo, stuku puku}} (pieśń kowala)
* {{sr|Słynie Gopło i Kruszwica}} (piosnka kołodzieja)
* {{sr|W ogrodzie na wodzie}} (przegląd zawodów)
* {{sr|Wszystkich dziś ciekawość budzi}} (piosnka furmana)
}}
|komórka 8_1={{Pudełko komórkowe 2
|tytuł= O muzyce
|grafika=
|tekst=* {{sr|Lutni moja ulubiona}}
* {{sr|Marzenie o grajku }}
* {{sr|Taniec}}
* {{sr|Wezmę ja skrzypki}}
}}
|komórka 8_2={{Pudełko komórkowe 4|tytuł= Pieśni i piosenki o śmierci
|grafika=
|tekst=* {{sr|Był Matysek chłop przed laty}}
* {{sr|Komu dzwonią, temu dzwonią}}
* {{sr|Umarł Maciek, umarł}}
}}
|komórka 9_1={{Pudełko komórkowe 1|tytuł= Pieśni i piosenki po angielsku
|grafika=
|tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:en:Main_Page|anglojęzycznych Wikibooks]] podręcznik '''[[:en:Songbook/Content#123|Songbook]]'''}}
* {{sr|Auld Lang Syne}}
* {{sr|God Save the King}} (hymn Wielkiej Brytanii)
* {{sr|Greensleeves}}
}}
|komórka 9_2={{Pudełko komórkowe 3|tytuł= Śpiewy w języku łacińskim
|grafika=
|tekst=* {{sr|Gaude mater}}
* {{sr|Gaudeamus igitur}}
* {{sr|Integer vitae}}
* {{sr|Veni Creator}}
}}
|komórka 10_1={{Pudełko komórkowe 2
|tytuł= Pieśni i piosenki po niemiecku
|grafika=
|tekst={{Projekt siostrzany|projekt=wikibooks|tekst=Zobacz w [[:de:Hauptseite|niemieckojęzycznych Wikibooks]] podręcznik '''[[:de:Liederbuch/_Inhalt#Lieder|Liederbuch]]'''}}
* {{sr|Deutschlandlied}} (hymn Niemiec)
* {{sr|Kołysanka Brahmsa }}
* {{sr|Oda do radości}}
}}
|komórka 10_2={{Pudełko komórkowe 4|tytuł= Pieśni i piosenki rusińskie i ukraińskie
|grafika=
|tekst=* {{sr|Ne chody Hryciu na weczernyci}}
* {{sr|Oj ty horo kamennaja}}
* {{sr|Дзюба}}
* {{sr|Їхав козак за Дунай}}
* {{sr|Ще не вмерла України і слава, і воля}}
}}
}}
<noinclude>{{ProstaStronaKoniec}}</noinclude>
bhh9pzi5s0vvqalws6bzml37rwdsgte
Szablon:StronaStart/stronastart.css
10
58549
551890
551508
2026-08-16T01:28:49Z
Persino
2851
551890
sanitized-css
text/css
body.skin--responsive .strona_start{
font-size:1rem;
line-height:1.4;
}
body:not(.skin--responsive) .strona_start{
font-size:16px;
line-height:1.4;
}
.strona_prawa .spis{
display:flex;
flex-direction:column;
width:100%;
}
.strona_prawa .spis > div,
.strona_prawa .spis > div > div{
height:auto;
max-height:100%;
}
.strona_prawa .spis > div,
.strona_prawa .spis > div > div{
height:auto;
max-height:100%;
width:auto;
display:flex !important;
flex-direction:column;
box-sizing:border-box;
}
.strona_prawa .spis .style_strony_bocznego_menu,
.strona_prawa .spis .style_strony_TOC{
overflow:auto;
}
@media all and (max-width:745px){
.strona_prawa .spis > div,
.strona_prawa .spis > div > div{
width:100% !important;
}
}
.strona_prawa .mw-sticky-y.spis:not(:hover){
transform: scale(0.3,0.3) translate(-116.5%,-116.5%);
/**/
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay:4s;
}
.strona_prawa .mw-sticky-y.spis:hover{
max-width:43.75rem !important;
transform: scale(1,1) translate(0,0);
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay: 0s;
}
.strona_prawa .pierwsza_strona.mw-overflow-y.mw-scrollbar-overflow-y{
padding-right:0.3125rem;
}
.strona_prawa .pierwsza_strona .wikitable{
margin-top:0.3125rem;
margin-bottom:0.3125rem;
}
.strona_prawa .pierwsza_strona hr.pierwsza_strona_spis_treści-hr{
height: 1px;
background-color: var(--border-color-base,#a2a9b1);
border: 0;
margin: 0.2em 0;
}
.strona_prawa .pierwsza_strona .pierwsza_strona_spis_treści{
font-size:0.875rem;
line-height:1.2;
}
.strona_start.tło_strona_start,
.strona_start .tło_strona_nadrzędna,
.strona_start .tło_główna_strona,
.strona_start .tło_strona_środkowa,
.strona_start .tło_strona,
.strona_start .tło_ciało_kontener,
.strona_start .tło_ciało_strona{
background-color:white;
background-image: none;
}
.strona_prawa .nawigacja_boksy > .mw-optimal-x > div{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
margin-left:0.3125rem !important;
margin-right:0 !important;
}
.strona_lewa .nawigacja_boksy > .mw-optimal-x > div{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
margin-right:0.3125rem !important;
margin-left:0 !important;
}
.strona_prawa .mw-optimal-x:hover,
.strona_lewa .mw-optimal-x:hover{
transform: scale(1,1) translate(0,0);
max-width:none !important;
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay: 0s;
}
.strona_prawa .mw-optimal-x:not(:hover){
transform: scale(0.3,0.3) translate(116.5%,-116.5%);
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay:4s;
}
.strona_lewa .mw-optimal-x:not(:hover){
transform: scale(0.3,0.3) translate(-116.5%,-116.5%);
transition: transform 500ms ease-out, linear;
transition-property: transform;
transition-duration: 500ms;
transition-timing-function: ease-out, linear;
transition-delay:4s;
}
html.client-nojs .strona_prawa,
html.client-nojs .strona_lewa{
overflow-x:auto !important;
overflow-y:hidden !important;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis{
visibility:visible !important;
position:relative !important;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis:hover{
width: 100% !important;
max-width:calc( 100% - 0.3125rem ) !important;
height:auto !important;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis:not(:hover){
width:100% !important;
max-width:calc( 100% - 0.3125rem ) !important;
height:auto !important;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis:hover{
transform:none;
transition:none;
}
html.client-nojs .strona_prawa .mw-sticky-y.spis:not(:hover){
transform:none;
transition:none;
}
html.client-nojs .strona_prawa .mw-sticky-y > .style_strony_TOC,
html.client-nojs .strona_prawa .mw-sticky-y > .style_strony_bocznego_menu{
overflow:auto;
padding-bottom:0.3125rem;
}
.strona_prawa .mw-sticky-y > .style_strony_TOC > .strona_spisu_treści,
.strona_prawa .mw-sticky-y > .style_strony_bocznego_menu > div{
flex:0 0 auto;
}
html.client-nojs .strona_prawa .nawigacja_boksy,
html.client-nojs .strona_lewa .nawigacja_boksy{
margin-top:0.3125rem !important;
visibility:visible !important;
}
html.client-nojs .strona_prawa .mw-optimal-x:not(:hover),
html.client-nojs .strona_lewa .mw-optimal-x:not(:hover){
transform:none;
transition:none;
}
html.client-nojs .strona_prawa .mw-optimal-x:hover,
html.client-nojs .strona_lewa .mw-optimal-x:hover{
transform:none;
transition:none;
}
html.client-nojs .strona_prawa .mw-optimal-x,
html.client-nojs .strona_lewa .mw-optimal-x{
overflow:auto !important;
visibility:visible !important;
position:relative !important;
z-index:1 !important;
direction: rtl;
width: auto !important;
}
html.client-nojs .strona_prawa .mw-optimal-x:not(:hover),
html.client-nojs .strona_lewa .mw-optimal-x:not(:hover){
width: auto !important;
max-width: calc( 100% - 0.3125rem ) !important;
height: auto !important;
}
html.client-nojs .strona_prawa .mw-optimal-x:hover,
html.client-nojs .strona_lewa .mw-optimal-x:hover{
z-index:3 !important;
width:100% !important;
max-width:calc( 100% - 0.3125rem ) !important;
}
body.skin-minerva .strona_start{
margin-top:0.25rem !important;
}
.strona_prawa .mw-optimal-x.mw-optimal-js.mw-scrollbar-overflow-x:not(:hover),
.strona_lewa .mw-optimal-x.mw-optimal-js.mw-scrollbar-overflow-x:not(:hover){
overflow:auto;
}
.strona_prawa .mw-optimal-x,
.strona_lewa .mw-optimal-x{
display:flex;
flex-direction:column;
}
.strona_lewa .mw-optimal-x > div,
.strona_prawa .mw-optimal-x > div{
flex:0 0 auto;
}
.strona_start .strona .ciało_zawartości > .menu > .menu_boks:hover{
background-color:blue !important;
color:white !important;
}
.strona_start .strona .ciało_zawartości > .menu > .menu_boks:active{
background-color:grey !important;
color:white !important;
}
.strona_start .strona .ciało_zawartości > .menu > .menu_boks:not(:hover):not(:active){
background-color:white !important;
color:black !important;
}
/**/
.strona > div > .ciało_kontener > .ciało_strona > :last-child.noprint > p:last-child{
margin-bottom:0 !important;
padding-bottom:0 !important;
}
.strona > div:not(:only-child) > .ciało_kontener > *:nth-child(2) > .noprint > p:last-child,
.strona > div > .ciało_kontener:not(:only-child) > *:nth-child(2) > .noprint > p:last-child{
margin-bottom:0 !important;
padding-bottom:0 !important;
}
.strona > div > .ciało_kontener > :nth-child(2):not(:empty) + .ciało_strona,
.strona > div:not(:only-child) > .ciało_kontener > .ciało_strona,
.strona > div > .ciało_kontener:not(:only-child) > .ciało_strona{
padding-bottom:0 !important;
}
.strona > div > .ciało_kontener > *:nth-child(1) > :not(style):not(link){
margin-top:0.625rem;
}
.strona > div > .ciało_kontener > *:nth-child(1) > :not(style):not(link) + :not(style):not(link){
margin-top:initial;
}
.strona > div > .ciało_kontener > *:nth-child(2) > :not(.nawigacja):not(.nawigacja-dół):last-child{
margin-bottom:0.625rem;
}
.strona > *:not(:first-child),
.strona > div > *:not(:first-child){
margin-left:0.5rem;
margin-right:0.5rem;
}
.strona > *:nth-child(2),
.strona > div > *:nth-child(2){
margin-top:0.25rem;
margin-bottom:0.125rem;
}
.strona > *:not(:nth-child(2)):not(:first-child),
.strona > div > *:not(:nth-child(2)):not(:first-child){
margin-top:0.125rem;
margin-bottom:0.125rem;
}
.strona > *:last-child:not(:first-child),
.strona > div > *:last-child:not(:first-child){
margin-top:0.125rem;
margin-bottom:0.5rem;
}
/**/
.strona h1, .strona h2,.strona h3,.strona h4,.strona h5,.strona h6{
text-align:left;
}
.strona > div > .ciało_kontener > .ciało_strona > p:first-child{
margin-top:0;
}
.strona > div > .ciało_kontener > .ciało_strona > p:not(.br-clear):last-child{
margin-bottom:0;
}
.strona > div > .ciało_kontener > .ciało_strona > div.nawigacja.nawigacja-dół{
margin-top:0.5rem !important;
}
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).floatleft + p,
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).floatright + p,
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).tleft + p,
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).tright + p,
.strona > div > .ciało_kontener > .ciało_strona > :not(style):not(link):not(p).float-left-or-right + p,
.strona > div > .ciało_kontener > .ciało_strona > figure.mw-halign-left + p,
.strona > div > .ciało_kontener > .ciało_strona > figure.mw-halign-right + p{
margin-top:0;
}
@media print{
.noprint{
display:none;
}
.print{
display:block;
}
}
.gallerytext, .plainlinks{
text-align:left;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona p + ul,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona p + ol,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona p + ul,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona p + ol{
margin-top:-0.2rem;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona p,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona p{
font-size: inherit;
line-height: 1.3;
}
.strona > div > .ciało_kontener.mw-scrollbar-overflow-x{
padding-bottom:0.3125rem;
}
.strona > div > .ciało_kontener.mw-scrollbar-overflow-y{
padding-right:0.3125rem;
}
.ciało_strona mw-html-heading,
.ciało_strona .mw-heading{
text-align:left;
}
.ciało_strona h1.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading1 h1,
.ciało_strona div.mw-heading.mw-heading1 h1 code,
/**/
.ciało_strona h2.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading2 h2,
.ciało_strona div.mw-heading.mw-heading2 h2 code,
/**/
.ciało_strona h3.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading3 h3,
.ciało_strona div.mw-heading.mw-heading3 h3 code,
/**/
.ciało_strona h4.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading4 h4,
.ciało_strona div.mw-heading.mw-heading4 h4 code,
/**/
.ciało_strona h5.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading5 h5,
.ciało_strona div.mw-heading.mw-heading5 h5 code,
/**/
.ciało_strona h6.mw-html-heading code,
.ciało_strona div.mw-heading.mw-heading6 h6,
.ciało_strona div.mw-heading.mw-heading6 h6 code{
font-size:unset;
line-height:unset;
}
.ciało_strona h1.mw-html-heading,
.ciało_strona div.mw-heading.mw-heading1{
font-size:1.6em;
}
.ciało_strona h2.mw-html-heading,
div.mw-heading.mw-heading2{
font-size:1.5em;
}
.ciało_strona h3.mw-html-heading,
.ciało_strona div.mw-heading.mw-heading3{
font-size:1.4em
}
.ciało_strona h4.mw-html-heading,
.ciało_strona div.mw-heading.mw-heading4{
font-size:1.3em;
}
.ciało_strona h5.mw-html-heading,
.ciało_strona div.mw-heading.mw-heading5{
font-size:1.2em;
}
.ciało_strona h6.mw-html-heading:not(.mw-hnumber),
.ciało_strona div.mw-heading.mw-heading6{
font-size:1.1em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber{
font-size:0.4em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-7{
font-size:1.0em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-8{
font-size:0.9em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-9{
font-size:0.8em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-10{
font-size:0.7em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-11{
font-size:0.6em;
}
.ciało_strona h6.mw-html-heading.mw-hnumber.mw-hnumber-12{
font-size:0.5em;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona figure.mw-halign-left[typeof="mw:File"] + ul,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona figure.mw-halign-left[typeof="mw:File"] + ul,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona figure.mw-halign-left[typeof="mw:File"] + ol,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona figure.mw-halign-left[typeof="mw:File"] + ol,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .szablon_plik ~ ul,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .szablon_plik ~ ul,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .szablon_plik ~ ol,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .szablon_plik ~ ol{
list-style-position:inside;
margin-left:0;
margin-inline-start:0;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona div.mw-highlight,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona div.mw-highlight{
display:flex;
flex-direction:column;
max-width:100%;
overflow-x:auto;
overflow-y:hidden;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona div.mw-highlight > pre,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona div.mw-highlight > pre{
display:block;
width:auto !important;
min-width:100%;
text-align:left;
word-wrap:break-word;
word-break:break-all;
hyphens:none;
box-sizing:border-box;
white-space:pre-wrap;
flex-shrink:0;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona code.zn_ogromne,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona code.zn_ogromne{
hyphens:auto;
word-wrap: break-word;
word-break: break-all;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona span.link > a,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona span.link > a{
hyphens:auto;
word-wrap: break-word;
word-break: break-word;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a{
word-break: break-all;
}
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a > span.fonty_rodzina_sans,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a > span.fonty_rodzina_sans,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a code,
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona span.link.link-ogromne > a code{
word-break:unset;
}
.ciało_strona a code{
color:unset;
}
.ciało_strona code{
display:inline;
font-size:inherit;
line-height:1.56;
word-wrap:break-word;
word-break:break-word;
}
@media all{
:not(style):not(link) ~ .strona_start{
margin-top:0.3125rem !important;
}
.strona_start p{
margin: 0.4em 0 0.5em 0;
}
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy > div.mójNagłówek > div:last-child,
.strona_start.kolumnowy > .strona_nadrzędna > div.mójNagłówek > div:last-child{
margin-bottom:0 !important;
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
margin-bottom:0.25rem !important;
}
.strona_start.kolumnowy.mobilne{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne div > .ciało_kontener > *{
min-width:100% !important;
max-width:100% !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne .strona{
overflow:hidden !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek > div:last-child{
margin-bottom:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek{
margin-bottom:0.25rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2),
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
max-width:none !important;
width:100% !important;
margin-left:0 !important;
margin-right:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > td:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > td:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona{
flex-wrap: wrap;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div{
position:static !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0 !important;
transition:none !important;
transform:none !important;
visibility:visible !important;
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
box-sizing:border-box !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x{
transition:none !important;
transform:none !important;
position:static !important;
margin-left:0 !important;
float:none !important;
clear:none !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div{
width:100% !important;
box-sizing:border-box;
margin: 0 !important;
margin-bottom:0.25rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div > div:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_lewa{
order:1 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa{
order:2 !important;
display:flex;
flex-direction:column;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .kontener_spis_treści a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .strona_spisu_treści > .toc_wykaz a.zaznaczone{
color: #3366cc !important;
font-weight: normal !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa{
order:3 !important;
width:100%;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy{
order:1;
height:auto !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y{
order:2;
height:100% !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div{
width:100% !important;
box-sizing:border-box !important;
margin-bottom:0.25rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis{
max-height:100% !important;
overflow:visible !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y .toc_spis{
overflow:visible !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona{
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .menu{
display:none !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .style_strony_TOC:only-child > .kontener_spis_treści{
margin-top:0 !important;
margin-bottom:0 !important;
}
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading{
display:block;
text-align:left;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > *,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > *{
display:inline;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection{
display:inline-flex;
margin-left:1em;
font-size:small;
margin-right:0;
vertical-align:middle;
}
body.skin--responsive.skin-minerva .strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection,
body.skin--responsive.skin-minerva .strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection{
margin-left:0.3em;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .numeracja,
.strona_start.niekolumnowy > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .numeracja{
margin-top: 0;
margin-bottom: auto;
}
}
@media all{
.strona_start.niekolumnowy > .mójNagłówek,
.strona_start.niekolumnowy > div:first-child:not(.mójNagłówek) > .rozdział,
.strona_start.kolumnowy > .strona_nadrzędna > .mójNagłówek,
.strona_start.kolumnowy > .strona_nadrzędna > div:first-child:not(.mójNagłówek) > .rozdział{
margin-top:0 !important;
}
.strona_start.niekolumnowy > .mójNagłówek,
.strona_start.niekolumnowy > div:first-child:not(.mójNagłówek) > *,
.strona_start.kolumnowy > .strona_nadrzędna > .mójNagłówek,
.strona_start.kolumnowy > .strona_nadrzędna > div:first-child:not(.mójNagłówek) > *{
margin-top:0 !important;
margin-bottom:0.25rem !important;
}
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
figure[typeof~="mw:File"].mw-halign-left{
float:left !important;
margin:4px 4px 4px 0 !important;
}
figure[typeof~="mw:File"].mw-halign-right{
float:right !important;
margin:4px 0 4px 4px !important;
}
figure[typeof~="mw:File"].mw-halign-center{
margin:0 auto !important;
}
figure[typeof~="mw:File"]{
display:block;
max-width:100%;
overflow:auto;
}
span[typeof~="mw:File"].mw-default-size{
display:inline-block;
overflow:auto;
max-width:100%;
}
div.tright{
float:right;
margin:0 0 1em 1em;
}
div.tleft{
float:left;
margin:0 1em 1em 0;
}
}
@media all and (max-width:745px), all and (max-device-width: 745px){
div.tright, div.tleft{
margin: 0 auto !important;
float:none !important;
}
}
@media all and (max-width:745px), all and (max-device-width: 745px), all and (max-device-height: 745px){
.strona_start.niekolumnowy.mobilne > .strona{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
overflow:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .ciało_kontener > *{
min-width:auto !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
}
/*{{Kategoria|Szablony - arkusze stylów/StronaStart}}*/
ko79h7rubntbpsddopzjvb30atmrtcz
Moduł:StronicowyParser/NumerLubNazwaArtykułówKsiążek
828
58936
551823
551815
2026-08-15T14:27:25Z
Persino
2851
551823
Scribunto
text/plain
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
mw.log(poziom_rozdzialu,rozdzial)
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
mw.log(artykul,poziom_artykulu)
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local s=1;
local parametry_modul=require("Module:Parametry");
local args_kopia;
local tab_spis;
local dane_szablonu;
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,"."));
mw.log(numer_artykulu,nazwa_artykulu,rozdzial,"TYTAN123111111111",dane,"S1",table.concat(tab_numer,"."),"S2",table.concat(tab_poziomowo,"."),"S3",glowny_spis_tresci_lub_rozdzial_ksiazki);
if((not nazwa_spisu)or(not numer_spisu)
or ((not glowny_spis_tresci_lub_rozdzial_ksiazki)
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((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1))]]
)then
mw.log("A");
return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;
elseif((numer_spisu)and(numer_spisu==1))then
mw.log("B");
if(glowny_spis_tresci_lub_rozdzial_ksiazki)then
return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;
else
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu);
return table.concat(tab_numer_artykulu,"."),glowny_spis_tresci_lub_rozdzial_ksiazki;
end;
end;
mw.log("C");
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;
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 return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu;
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;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 s=1;
local parametry_modul=require("Module:Parametry");
local args_kopia;
local tab_spis;
local dane_szablonu;
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>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((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1))
)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif((numer_spisu)and(numer_spisu==1))then
if(glowny_spis_tresci_lub_rozdzial_ksiazki)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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 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;
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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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 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)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
if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then
local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu);
numer_rozdzialu=table.concat(tab_numer_rozdzialu,".");
end;
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;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
return false;
end;
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;
rao44emjhjd30isjobyza3u3vjfdx2k
551825
551823
2026-08-15T14:41:28Z
Persino
2851
551825
Scribunto
text/plain
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local s=1;
local parametry_modul=require("Module:Parametry");
local args_kopia;
local tab_spis;
local dane_szablonu;
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((tonumber(numer_artykulu) or 1)>1))
or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1))
)then
return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;
elseif((numer_spisu)and(numer_spisu==1))then
if(glowny_spis_tresci_lub_rozdzial_ksiazki)then
return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;
else
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu);
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;
if(not tab_spis)then tab_spis={};end;
tab_spis[nazwa_spisu]={};
numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=PobierzNumerLubNazweArtykulu({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 return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu;
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;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 s=1;
local parametry_modul=require("Module:Parametry");
local args_kopia;
local tab_spis;
local dane_szablonu;
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((tonumber(numer_artykulu) or 1)>1))
or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1))
)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif((numer_spisu)and(numer_spisu==1))then
if(glowny_spis_tresci_lub_rozdzial_ksiazki)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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 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;
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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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 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)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
if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then
local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu);
numer_rozdzialu=table.concat(tab_numer_rozdzialu,".");
end;
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;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
return false;
end;
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;
khf9ac0ntarsmzp3nnbk466cfnjohcx
551829
551825
2026-08-15T16:07:41Z
Persino
2851
551829
Scribunto
text/plain
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
mw.log(rozdzial,glowny_spis_tresci_lub_rozdzial_ksiazki,"TYTAn123")
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
local s=1;
local parametry_modul=require("Module:Parametry");
local args_kopia;
local tab_spis;
local dane_szablonu;
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
mw.log(rozdzial,artykul,glowny_spis_tresci_lub_rozdzial_ksiazki);
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((tonumber(numer_artykulu) or 1)>1))
or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1))
)then
return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;
elseif((numer_spisu)and(numer_spisu==1))then
if(glowny_spis_tresci_lub_rozdzial_ksiazki)then
return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;
else
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu);
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;
if(not tab_spis)then tab_spis={};end;
tab_spis[nazwa_spisu]={};
numer_spisu_tresci,glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci=PobierzNumerLubNazweArtykulu({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 return numer_artykulu,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_artykulu) or tab_numer_artykulu;
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;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 s=1;
local parametry_modul=require("Module:Parametry");
local args_kopia;
local tab_spis;
local dane_szablonu;
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((tonumber(numer_artykulu) or 1)>1))
or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1))
)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif((numer_spisu)and(numer_spisu==1))then
if(glowny_spis_tresci_lub_rozdzial_ksiazki)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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 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;
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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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 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)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
if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then
local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu);
numer_rozdzialu=table.concat(tab_numer_rozdzialu,".");
end;
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;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
return false;
end;
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;
37m2s9kdxx7cjo2zgz6bx9vxkw2b4mb
551833
551829
2026-08-15T17:44:02Z
Persino
2851
551833
Scribunto
text/plain
require("strict");
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
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 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,"."));
mw.log(nazwa_artykulu,rozdzial,artykul,numer_artykulu,"TYTAN123",glowny_spis_tresci_lub_rozdzial_ksiazki_poprz,glowny_spis_tresci_lub_rozdzial_ksiazki)
if((not nazwa_spisu)or(not numer_spisu)
or ((not glowny_spis_tresci_lub_rozdzial_ksiazki)and((tonumber(numer_artykulu) 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)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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 s=1;
local parametry_modul=require("Module:Parametry");
local args_kopia;
local tab_spis;
local dane_szablonu;
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((tonumber(numer_artykulu) or 1)>1))
or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1))
)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif((numer_spisu)and(numer_spisu==1))then
if(glowny_spis_tresci_lub_rozdzial_ksiazki)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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 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;
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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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 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)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
if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then
local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu);
numer_rozdzialu=table.concat(tab_numer_rozdzialu,".");
end;
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;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
return false;
end;
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;
f7w2rvhpf4m3tvbdv9k8r2v2hbs6e57
551835
551833
2026-08-15T17:52:48Z
Persino
2851
551835
Scribunto
text/plain
require("strict");
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["PobierzNumerArtykułu"]=function(frame,tabela_listy_danych_analizy_ksiazki)
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 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,"."));
mw.log(nazwa_artykulu,rozdzial,artykul,numer_artykulu,"TYTAN123",glowny_spis_tresci_lub_rozdzial_ksiazki_poprz,glowny_spis_tresci_lub_rozdzial_ksiazki)
if((not nazwa_spisu)or(not numer_spisu)
or ((not glowny_spis_tresci_lub_rozdzial_ksiazki)and((tonumber(numer_artykulu) 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)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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 s=1;
local parametry_modul=require("Module:Parametry");
local args_kopia;
local tab_spis;
local dane_szablonu;
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((tonumber(numer_artykulu) or 1)>1))
or((glowny_spis_tresci_lub_rozdzial_ksiazki)and((numer_spisu or 1)>1))
)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif((numer_spisu)and(numer_spisu==1))then
if(glowny_spis_tresci_lub_rozdzial_ksiazki)then
local wynik=WynikArtykulowyZNumeru(numer_artykulu);
if(wynik)then return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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 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;
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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
local tab_numer_artykulu=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 return wynik,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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 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
if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then
local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu);
numer_rozdzialu=table.concat(tab_numer_rozdzialu,".");
end;
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;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
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;
ir60t4eorebk5q0p5wt0hegaphh6373
551837
551835
2026-08-15T19:25:45Z
Persino
2851
551837
Scribunto
text/plain
require("strict");
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["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 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((tonumber(numer_artykulu) 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)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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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"]="3";
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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((tonumber(numer_artykulu) 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)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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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"]="3";
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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
if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then
local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu);
numer_rozdzialu=table.concat(tab_numer_rozdzialu,".");
end;
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;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
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;
3egrr70jw6smf52583hgugn58a8l0fi
551839
551837
2026-08-15T19:36:53Z
Persino
2851
551839
Scribunto
text/plain
require("strict");
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["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 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((tonumber(numer_artykulu) 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)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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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((tonumber(numer_artykulu) 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)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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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
if(not glowny_spis_tresci_lub_rozdzial_ksiazki)then
local tab_numer_rozdzialu=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(frame,tabela_listy_danych_analizy_ksiazki,tab_lista_artykulow_w_ksiazce,tab_numer_rozdzialu);
numer_rozdzialu=table.concat(tab_numer_rozdzialu,".");
end;
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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
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;
0miugrj636tml670roknzd0mimvz720
551840
551839
2026-08-15T19:46:51Z
Persino
2851
551840
Scribunto
text/plain
require("strict");
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["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 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((tonumber(numer_artykulu) 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)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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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((tonumber(numer_artykulu) 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)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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
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;
61zownbva4icouqnl93ul89rs02j6yu
551841
551840
2026-08-15T19:58:39Z
Persino
2851
551841
Scribunto
text/plain
require("strict");
local p={};
local function PobierzNumerLubNazweArtykulu(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["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 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((tonumber(numer_artykulu) 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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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((tonumber(numer_artykulu) 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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
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;
mk08eghk7r7pnotdi7hdjjn02xukj7y
551844
551841
2026-08-15T22:09:07Z
Persino
2851
551844
Scribunto
text/plain
require("strict");
local p={};
local function ZamienNumerArtykuluNaTabele(numer_artykulu)
local tab_numer_artykulu=mw.text.split(numer_artykulu,".",true);
return tab_numer_artykulu;
end;
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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;
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu)
local tab_numer_artykulu=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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["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 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((tonumber(numer_artykulu) 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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 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((tonumber(numer_artykulu) 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=ZamienNumerArtykuluNaTabele(numer_artykulu);
tab_numer_artykulu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_artykulu,numer_spisu_tresci);
tab_numer_artykulu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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=IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(numer_rozdzialu,numer_spisu_tresci);
tab_numer_rozdzialu=(not glowny_spis_tresci_lub_rozdzial_ksiazki_spisu_tresci) and 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=ZamienNumerArtykuluNaTabele(numer_rozdzialu);
tab_numer_rozdzialu=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;
ccy4wmg4ake0ewjun0jmzwof4ip73k2
551848
551844
2026-08-15T22:20:23Z
Persino
2851
551848
Scribunto
text/plain
require("strict");
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((tonumber(numer_artykulu) 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((tonumber(numer_artykulu) 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;
8r0lrq3ixi4xmosw37koq91p0ht2kmx
551851
551848
2026-08-15T22:24:15Z
Persino
2851
551851
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((tonumber(numer_artykulu) 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((tonumber(numer_artykulu) 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;
hw8ey9b06pq1rk7gw3hgiou6w4ariy0
Wikipedysta:Persino/brudnopis4
2
59543
551870
542683
2026-08-16T00:52:36Z
Persino
2851
551870
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
* tytan
# tytan
: tytan
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
4pofdd8fluz6u6k7wwplrvcu45jof82
551872
551870
2026-08-16T00:58:50Z
Persino
2851
551872
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
* tytan
# [[/tytan/]]
: tytan
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
03utcvpmxqoorknnbs3rq04e0yz1bno
551873
551872
2026-08-16T00:59:43Z
Persino
2851
551873
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
* tytan
# [[/tytan/]]
: [[/tytan/]]
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
aduwzay7qxtit4mzufr35fh4gpph5l4
551874
551873
2026-08-16T01:00:27Z
Persino
2851
551874
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
* tytan
# [[/tytan/]]
: de: [[/tytan/]]
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
cgodwpp61yorsa525cgshl60im851dt
551875
551874
2026-08-16T01:01:51Z
Persino
2851
551875
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
* tytan
: de: tytan
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
cq76fmtmhe9f4y08k7ruahz8wb5d66i
551876
551875
2026-08-16T01:02:37Z
Persino
2851
551876
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
*<big>'''[[Piwowarstwo domowe/Sprzęt|Sprzęt]]'''</big> {{kompletność krótka|75%}}
:''Lista kompletnego sprzętu do warzenia piwa w domu.''
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
hr0z0zi107eeux1lne0d9gu0dqi7fx6
551877
551876
2026-08-16T01:04:01Z
Persino
2851
551877
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
: tytan
*<big>'''[[Piwowarstwo domowe/Sprzęt|Sprzęt]]'''</big> {{kompletność krótka|75%}}
:''Lista kompletnego sprzętu do warzenia piwa w domu.''
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
17vld38ep6djyhgrr2ksmjo5k7fl6mu
551878
551877
2026-08-16T01:07:06Z
Persino
2851
551878
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
*<big>'''[[Piwowarstwo domowe/Sprzęt|Sprzęt]]'''</big> {{kompletność krótka|75%}}
:''Lista kompletnego sprzętu do warzenia piwa w domu.''
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
hr0z0zi107eeux1lne0d9gu0dqi7fx6
551879
551878
2026-08-16T01:08:43Z
Persino
2851
551879
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
llpjra3p575s2jv2srb38gfv3snpme2
551880
551879
2026-08-16T01:10:08Z
Persino
2851
551880
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
== Spis treści ==
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
sba0tv7arstdz6sswirtdxowrmlv9l9
551881
551880
2026-08-16T01:11:32Z
Persino
2851
551881
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
== Spis treści ==
# [[Fiński/Wstęp|Wstęp]] [[Plik:00%.svg]]
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
t3czlscnsx83knhhlo6js89t9ezjqo0
551882
551881
2026-08-16T01:12:38Z
Persino
2851
/* Spis treści */
551882
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
== Spis treści ==
# [[Fiński/Wstęp|Wstęp]] [[Plik:00%.svg]]
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
== Spis treści ==
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
73zwnm9cev3pk3cboo46xpw3rl5ikaq
551883
551882
2026-08-16T01:13:54Z
Persino
2851
/* Spis treści */
551883
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
== Spis treści ==
# [[Fiński/Wstęp|Wstęp]] [[Plik:00%.svg]]
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
== Spis treści ==
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
* '''Część 2: Gramatyka'''
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
tcys14z4vt5rutcywlh6fuurhoapgkd
551885
551883
2026-08-16T01:17:10Z
Persino
2851
/* Spis treści */
551885
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
== Spis treści ==
# [[Fiński/Wstęp|Wstęp]] [[Plik:00%.svg]]
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
== Spis treści ==
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
* '''Część 2: Gramatyka'''
== Spis treści ==
* '''{{sr|Abionim|abionim}}''' - nazwa własna obiektu nieożywionego (materialnego lub niematerialnego)
: de: Abionym
* '''{{sr|Agronim|agronim}}''' - nazwa własna pola, łąki itp.<ref name="">[http://www.lifesciencesite.com/lsj/life1106/074_24747life110614_516_521.pdf ''Word-formation in Kazakh toponyms'', Life Science Journal 2014;11(6), dostęp 05.01.2021]</ref>
: de: Agronym
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
qsdv8w2yszz6nerhrj5hb1lq3pii5o5
551886
551885
2026-08-16T01:18:10Z
Persino
2851
/* Spis treści */
551886
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
== Spis treści ==
# [[Fiński/Wstęp|Wstęp]] [[Plik:00%.svg]]
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
== Spis treści ==
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
* '''Część 2: Gramatyka'''
== Spis treści ==
# '''{{sr|Abionim|abionim}}''' - nazwa własna obiektu nieożywionego (materialnego lub niematerialnego)
: de: Abionym
# '''{{sr|Agronim|agronim}}''' - nazwa własna pola, łąki itp.<ref name="">[http://www.lifesciencesite.com/lsj/life1106/074_24747life110614_516_521.pdf ''Word-formation in Kazakh toponyms'', Life Science Journal 2014;11(6), dostęp 05.01.2021]</ref>
: de: Agronym
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
mttism6bo813jnxlr1jtex2oi446pwv
551887
551886
2026-08-16T01:19:10Z
Persino
2851
/* Spis treści */
551887
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
== Spis treści ==
# [[Fiński/Wstęp|Wstęp]] [[Plik:00%.svg]]
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
== Spis treści ==
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
* '''Część 2: Gramatyka'''
== Spis treści ==
* '''{{sr|Abionim|abionim}}''' - nazwa własna obiektu nieożywionego (materialnego lub niematerialnego)
# de: Abionym
* '''{{sr|Agronim|agronim}}''' - nazwa własna pola, łąki itp.<ref name="">[http://www.lifesciencesite.com/lsj/life1106/074_24747life110614_516_521.pdf ''Word-formation in Kazakh toponyms'', Life Science Journal 2014;11(6), dostęp 05.01.2021]</ref>
# de: Agronym
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
87nirwjr50siine879qzvyf5okmk7in
551888
551887
2026-08-16T01:21:31Z
Persino
2851
551888
wikitext
text/x-wiki
{{Spis treści}}
<div>
{{HNumer|1=
==[[/Jednostki układu SI/]]</ol></li></div>==
}}
== Spis treści ==
# [[Fiński/Wstęp|Wstęp]] [[Plik:00%.svg]]
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
: tytan
== Spis treści ==
* '''Część 1: Podstawowa'''
# [[Fiński/alfabet|Lekcja 1: Alfabet]] [[Plik:100 percent.svg]]
# [[Fiński/wymowa|Lekcja 2: Wymowa]] [[Plik:100 percent.svg]]
* '''Część 2: Gramatyka'''
== Spis treści ==
* '''{{sr|Abionim|abionim}}''' - nazwa własna obiektu nieożywionego (materialnego lub niematerialnego)
# de: Abionym
* '''{{sr|Agronim|agronim}}''' - nazwa własna pola, łąki itp.<ref name="">[http://www.lifesciencesite.com/lsj/life1106/074_24747life110614_516_521.pdf ''Word-formation in Kazakh toponyms'', Life Science Journal 2014;11(6), dostęp 05.01.2021]</ref>
# de: Agronym
<h2>Spis treści</h2>
gigat1:
*mamut
{{ce|[[Wikipedysta:Persino/brudnopis4]]{{Br}}
[[TYTAn]][[TYTAn]]}}
==ty{{br}}<span/>tan</div>==
=====tytan1<ref>tytan</ref><source>tytan</source>=====
''zygat sys1 [[/sys/|<newline>tytan<newline>]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# tytan [[/Wzory|Wzory - przekształcanie]]zaokrąglenieSuwakowe
# [[/Zaokrąglenie|Zaokrąglenie liczbs]]Zaokrąglenie
=====tytan2<ref>tytan</ref><source>tytan</source>=====
''zygat sys2 [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
''zygat sys [[/sys/]]''
=====tytan3 [[/sys/]] [[/sys/]]=====
* ''zygat3 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]
=====tytan4 [[/sys/]] [[/sys/]]=====
; ''zygat4 [[/sys/]] [[/sys/]]''
# [[/Jednostki układu SI/]]
# [[/Wektory i skalary|Wektory i skalary]]</li></ul>
# [[/Wzory|Wzory - przekształcanie]]
# [[/Zaokrąglenie|Zaokrąglenie liczb]]</li>
; ''zygat [[/sys/]] [[/sys/]]''
s{{ce|TYTAN
TYTAN}}s
==tytan3<pre>tytana
tytanb</pre>==
gigat1:
*{{lg|Wikipedysta:Persino/brudnopis4/tytan}}
[[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
*[[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
#[[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
[[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#[[/mamut/]]
[[commons:Category:Images with BASH source code| code Obrazy i kod BASH użyty do ich tworzenia ]]
<br />
<center><font size="8">'''Alfabet zwierząt'''</font></center><center><br /><br /><br />
<div class="noprint">
<font size="4">-- [[/A/]] Ą [[/B/]] [[/C/]] [[/Ć/]] [[/D/]] [[/E/]] Ę [[/F/]] [[/G/]] [[/H/]] [[/I/]] [[/J/]] [[/K/]] [[/L/]] [[/Ł/]] [[/M/]] [[/N/]] Ń [[/O/]] Ó [[/P/]] [[/R/]] [[/S/]] [[/Ś/]] [[/T/]] [[/U/]] [[/W/]] Y [[/Z/]] [[/Ź/]] [[/Ż/]] --</font><br />
[[/Autorzy/]]<br/>
</div>
</center>
==tytan2==
<h2 class="mw-hnumber-2">Wprowadzenie tekstu</h2>
gigat2:
* pozwala na dzielenie <nowiki>{{Szablon|a|b|c}}</nowiki> długiego polecenia na kilka linii (ang. a line continuation character ). Składnia<br/> : <backslash><newline><pre>tytan
tytan
</pre>
===Dzielenie słów===
Następuje to w czasie <ref>[https://datacadamia.com/lang/bash/word%20splitting datacadamia : bash word splitting]</ref>
* rozszerzenie parametrów ( ang. parameter expansion) <ref>[https://www.gnu.org/software/bash/manual/html%20node/Shell-Parameter-Expansion.html gnu bash manual : Shell-Parameter-Expansion]</ref>
* zamiana komend ( ang. command substitution)<ref>[https://www.gnu.org/software/bash/manual/html%20node/Command-Substitution.html gnu bash manua: Command-Substitution]</ref>
* rozwinięcie arytmetyczne ( ang. arithmetic expansion)<nowiki>tytan
tytan</nowiki>
* poprawianie i uzupełnianie najlepszych podręczników, standardy (z en books etd.) (druk, pdf, nagłówki, szablony itd. - TO DO + akcja uzupełniania podręczników (merytorycznego), ew. podpiąć to pod wikipedię; [http://wikistics.falsikon.de/latest-daily/wikibooks/pl/]
jeśli nie wystąpiło w podwójnych cudzysłowach
Powłoka traktuje każdy [[Bash#IFS|znak IFS]] jako ogranicznik ( ang. delimiter ) i dzieli wyniki innych interpretacji na słowa na tych znakac
=== Klasy VII–VIII: ===
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Charles Dickens – Opowieść wigilijna|Charles Dickens ''– Opowieść wigilijna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Fredro – Zemsta|Aleksander Fredro ''– Zemsta'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Aleksander Kamiński – Kamienie na szaniec|Aleksander Kamiński ''– Kamienie na szaniec'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Dziady cz. II|Adam Mickiewicz ''– Dziady cz. II'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Reduta Ordona|Adam Mickiewicz – ''Reduta Ordona'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Adam Mickiewicz – Świtezianka|Adam Mickiewicz – ''Świtezianka'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Antoine de Saint-Exupéry – Mały książę|Antoine de Saint-Exupéry ''– Mały książę'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Juliusz Słowacki – Balladyna|Juliusz Słowacki ''– Balladyna'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Henryk Sienkiewicz – Latarnik|Henryk Sienkiewicz – ''Latarnik'']]
* [[Streszczenia obowiązkowych lektur szkolnych dla szkoły podstawowej/Sławomir Mrożek – Artysta|Sławomir Mrożek – ''Artysta'']]
==== TYTAN ====
== Spis treści ==
__NOTOC__
{{wikipedia|Język hiszpański}}
* [[/Wstęp/]] – podstawowe informacje o języku<nowiki>tytan
tytan
</nowiki>
<div style="font-size: 120%">[[Wikipedysta:Persino/brudnopis4|'''''¡Bienvenidos! – Witamy!''''']]</div>
Hiszpański jest jednym z najbardziej rozpowszechnionych języków świata. Co dzień mówi nim ponad 350 milionów ludzi, zaś kolejne 70 milionów używa go jako drugiego języka.
Mówiąc o języku hiszpańskim, zwykle mamy na myśli język kastylijski (''castellano''), który jest najczęściej używanym w Hiszpanii i na całym świecie dialektem. Inne języki używane na terenie Hiszpanii to kataloński, galicyjski, czy też oksytański.
W wielu krajach, zwłaszcza w Ameryce Południowej, do kastylijskiego (hiszpańskiego) zostały włączone liczne słowa pochodzące z języków rdzennych mieszkańców tych terenów.
<small>< [[/Okładka|Okładka i interwiki]]</small>
== Curso de Español – ''kurs hiszpańskiego''==
==Regulamin wyboru ''„Wkładu miesiąca”''==
* Celem głosowania jest wyróżnienie podręcznika, który w minionym miesiącu dokonał największego postępu, z uwzględnieniem nowo powstających podręczników.<pre>
</pre>
* Nominację powinno się składać nie wcześniej niż tydzień przed rozpoczęciem głosowania. Głosowanie rozpoczyna się pierwszego dnia następnego miesiąca i trwa tydzień czasu.
* Można głosować na dowolną ilość nominacji lub na nieprzyznanie wyróżnienia w danym miesiącu. '''Tylko zarejestrowani użytkownicy z przynajmniej 10 edycjami''' mogą oddawać głosy.
* Przy oddawaniu głosu na nominację, powinno się uwzględnić przede wszystkim '''wkład wniesiony przez użytkowników i autorów w minionym miesiącu''' i ponadto:
** temat książki,
** poprawność językową,
** styl.
* Każda nominowana książka powinna spełniać poniższe kryteria:
** musi być zgodna z zasadami polskich Wikibooks
** musi być '''aktywna''' w miesiącu, którego dotyczy głosowanie,
** musi zawierać '''spis treści''', a także trochę napisanego '''tekstu''',
** '''nie może posiadać wyróżnienia''' w poprzednich miesiącach.
* Wyróżnienie może otrzymać co najwyżej '''jedna''' książka, a otrzymuje ją ta książka, która otrzymała największą ilość głosów.
* Jeśli powstaną pewne niejasności lub problemy przy wyborze podręcznika, uczestnicy zadecydują, co należy w takiej sytuacji zrobić.
* W przypadku otrzymania wyróżnienia, informacja o tym zostanie umieszczona w danej książce i na odpowiedniej stronie {{lk|Podręczniki według tematu|kategorii tematycznych}} i ewentualnie w {{lr|Księgozbiór|księgozbiorze}}.
== Zasilacz ==
Konstrukcje skanerów płaskich, ze względu na wykorzystane elementy światłoczułe (zamieniające sygnał świetlny na elektryczny), dzieli się na dwie grupy:
# '''Urządzenia wykorzystujące układy typu CCD''' (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
== Dedykacja ==
<div style="text-align: center; margin-bottom: 2em;">''"Książkę tę dedykuję Anecie, która jakiś czas temu zrobiła mi zaszczyt i została moją żoną,
''oraz tym wszystkim, którzy systemu Linux jeszcze nie doświadczyli"''
''Paweł "pavroo" 24.01.2010r.''</div>
== Liczby ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan2
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
#tytan
#[[/mamutss/]]
== Liczby2 ==
-----
<div>
# [[/Węglowodory/]] {{kompletność|50%|14.10.2008}}
## [[/Węglowodory2/]] {{kompletność|50%|14.10.2008}}
# [[/Węglowodory3/]] {{kompletność|50%|14.10.2008}}
;tytan3
# [[/Węglowodory4/]] {{kompletność|50%|14.10.2008}}
;;tytan4
#[[/mamutss2/]]
== Koniec ==
* [[Niemiecki/Gramatyka|Gramatyka]] (''Grammatik'')
** [[Niemiecki/Gramatyka/Rodzajniki|Rodzajniki]]
* [[Niemiecki/Słowotwórstwo|Słowotwórstwo]] (''Wortbildung'')
* [[Niemiecki/Teksty|Teksty]] (''Texte'')
** [[Niemiecki/Teksty/Rodzina i przyjaciele|Rodzina i przyjaciele]] (''Familie und Freundskreis'')
** [[Niemiecki/Teksty/Święta i uroczystości|Święta i uroczystości]]
** [[Niemiecki/Wygląd zewnętrzny i cechy charakteru|Wygląd zewnętrzny i cechy charakteru]] (''Aussehen und Charaktereigenschafte'')
* [[Niemiecki/Linki|Linki]] (''Links'')
* ''''tytan'''
<noinclude>== Rozdziały ==
# [[/Instalacja systemu/]]
# [[/Instalacja systemu na pamięci przenośnej/]]
# [[/Czynności poinstalacyjne/]]
# [[/Zarządzanie systemem, pakietami, instalacja programów/]]
# [[/Programy użytkowe/]]
# [[/Rozwiązywanie problemów/]]
# [[/Od autora/]]</noinclude>
----EstońskiLethern/Pomocne
{{PobierzNumerArtykułu|mamutss2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|Autorzy|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----
{{PobierzNumerArtykułu|0|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta}}
----
{{PobierzNumerArtykułu|Alkany/Wzory strukturalne i izomeria alkanów|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chemia organiczna/Podstawy teoretyczne chemii organicznej/Historia chemii organicznej}}
-----Koniec
{{PobierzNumerArtykułu|Koniec|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
{{PobierzNazwęArtykułu|3.9|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=User|nazwa jednostki=Persino/brudnopis4}}
----postulaty
{{PobierzNumerArtykułu|Szczyty/Błyszcz|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Tatry/Szczyty/Błyszcz}}
----postulaty
{{PobierzNumerArtykułu|Instalacja_systemu|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Analiza_rzeczywista}}
----
{{NpDane|Category|klucz projektu=en|link=tak|po polsku=tak}}
----
{{Wikipedia2|strona2=Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{Wikipedia2|Wikipedia|dopełniacz1=Wikipedia|Wikibooks|dopełniacz2=Wirtualne podręczniki|strona3=Wikinews|dopełniacz3=Wikinews}}
----
{{PobierzNumerArtykułu|Muzyka|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}}
----
{{PobierzNumerArtykułu|Ssaki|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Zarządzanie_systemem,_pakietami,_instalacja_programów|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Zarządzanie_systemem,_pakietami,_instalacja_programów}}
----
{{PobierzNumerArtykułu|Arche|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Filozofia/Arche}}
----
{{PobierzNumerArtykułu|Od_autora|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Aptosid_-_czyli_Debian_sid_krok_po_kroku_dla_każdego/Od_autora}}
----
{{PobierzNumerArtykułu|Rodzaje płetw|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Zwierzęta/Ssaki}}
----
{{PobierzNumerArtykułu|Algorytm_Cohena-Sutherlanda|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Kody_źródłowe/Algorytm_Cohena-Sutherlanda}}
----
{{PobierzNumerArtykułu|Problemy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Fryzjerstwo/Problemy}}
----
{{PobierzNumerArtykułu|O_języku_chińskim|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Chiński/O_języku_chińskim}}
----
{{PobierzNumerArtykułu|Streszczenie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Mykowirusy_–_wirusy_infekujące_grzyby/Streszczenie}}
----
{{PobierzNumerArtykułu|O_podręczniku|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=C%2B%2B/O_podręczniku}}
----
{{PobierzNumerArtykułu|Podstawy|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Slovio/Podstawy}}
----
{{PobierzNumerArtykułu|Bałtowie|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Cywilizacje/Bałtowie}}
----
{{PobierzNumerArtykułu|iproute2|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Sieci:Linux/iproute2}}
----
{{PobierzNumerArtykułu|Wybór_środowiska_programistycznego|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Programowanie_C%2B%2B_Qt4_w_systemie_Gnu-Linux/Wybór_środowiska_programistycznego}}
----
{{PobierzNumerArtykułu|Wymowa|dane=3|poziomowo=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Lożban/Wymowa}}
----
{{PobierzNumerArtykułu|Yerba mate|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Napary}}
{{Przypisy}}
f24rt4u8fqgtzwolefnkgsijs6ofvmp
Wikibooks:Mechanizm MediaWiki
4
60755
551914
551477
2026-08-16T04:40:05Z
Persino
2851
/* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */
551914
wikitext
text/x-wiki
<noinclude><!--
-->{{StandardowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>{{Spis treści}}
Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}.
== Szablony ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy.
=== Opis wizualny ===
* {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego.
** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Informacje}}, {{lru|Szablony/PrzypisStrona}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lr|Szablony/Infoboksy/Prolog|Infoboksy - Prolog}}, {{lr|Szablony/Infoboksy/Tom I|Infoboksy - Tom I}}, {{lr|Szablony/Infoboksy/Tom II|Infoboksy - Tom II}}, {{lr|Szablony/Infoboksy/Tom III|Infoboksy - Tom III}}, {{lr|Szablony/Infoboksy/Tom IV|Infoboksy - Tom IV}}, {{lr|Szablony/Infoboksy/Tom V|Infoboksy - Tom V}}, {{lr|Szablony/Infoboksy/Tom VI|Infoboksy - Tom VI}}, {{lr|Szablony/Infoboksy/Komponenty|Infoboksy - Komponenty}}, {{lr|Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}.
=== Opis tekstowy ===
* {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów.
** {{lp|Spis treści/Szablony/Tom I|Szablony - Tom I}}, {{lp|Spis treści/Szablony/Tom II|Szablony - Tom II}}, {{lp|Spis treści/Szablony/Tom III|Szablony - Tom III}} i {{lp|Spis treści/Szablony/Tom IV|Szablony - Tom IV}}.
== Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ==
{{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}}
* Moduły podstawowe
** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} procedur operujących na nazwach MediaWiki projektu.
*** {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje.
** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach.
** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne.
** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron.
** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście.
** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki.
** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki.
** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
ry9lhjct52biosndg532jiz0hr873gx
551917
551914
2026-08-16T04:45:01Z
Persino
2851
/* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */
551917
wikitext
text/x-wiki
<noinclude><!--
-->{{StandardowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>{{Spis treści}}
Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}.
== Szablony ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy.
=== Opis wizualny ===
* {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego.
** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Informacje}}, {{lru|Szablony/PrzypisStrona}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lr|Szablony/Infoboksy/Prolog|Infoboksy - Prolog}}, {{lr|Szablony/Infoboksy/Tom I|Infoboksy - Tom I}}, {{lr|Szablony/Infoboksy/Tom II|Infoboksy - Tom II}}, {{lr|Szablony/Infoboksy/Tom III|Infoboksy - Tom III}}, {{lr|Szablony/Infoboksy/Tom IV|Infoboksy - Tom IV}}, {{lr|Szablony/Infoboksy/Tom V|Infoboksy - Tom V}}, {{lr|Szablony/Infoboksy/Tom VI|Infoboksy - Tom VI}}, {{lr|Szablony/Infoboksy/Komponenty|Infoboksy - Komponenty}}, {{lr|Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}.
=== Opis tekstowy ===
* {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów.
** {{lp|Spis treści/Szablony/Tom I|Szablony - Tom I}}, {{lp|Spis treści/Szablony/Tom II|Szablony - Tom II}}, {{lp|Spis treści/Szablony/Tom III|Szablony - Tom III}} i {{lp|Spis treści/Szablony/Tom IV|Szablony - Tom IV}}.
== Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ==
{{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}}
* Moduły podstawowe
** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} procedur operujących na nazwach MediaWiki projektu.
** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje.
** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach.
** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne.
** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron.
** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście.
** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki.
** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki.
** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
bgc5nepvg49ea5d60e16e2y7zislwvj
551918
551917
2026-08-16T04:46:12Z
Persino
2851
/* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */
551918
wikitext
text/x-wiki
<noinclude><!--
-->{{StandardowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>{{Spis treści}}
Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}.
== Szablony ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy.
=== Opis wizualny ===
* {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego.
** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Informacje}}, {{lru|Szablony/PrzypisStrona}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lr|Szablony/Infoboksy/Prolog|Infoboksy - Prolog}}, {{lr|Szablony/Infoboksy/Tom I|Infoboksy - Tom I}}, {{lr|Szablony/Infoboksy/Tom II|Infoboksy - Tom II}}, {{lr|Szablony/Infoboksy/Tom III|Infoboksy - Tom III}}, {{lr|Szablony/Infoboksy/Tom IV|Infoboksy - Tom IV}}, {{lr|Szablony/Infoboksy/Tom V|Infoboksy - Tom V}}, {{lr|Szablony/Infoboksy/Tom VI|Infoboksy - Tom VI}}, {{lr|Szablony/Infoboksy/Komponenty|Infoboksy - Komponenty}}, {{lr|Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}.
=== Opis tekstowy ===
* {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów.
** {{lp|Spis treści/Szablony/Tom I|Szablony - Tom I}}, {{lp|Spis treści/Szablony/Tom II|Szablony - Tom II}}, {{lp|Spis treści/Szablony/Tom III|Szablony - Tom III}} i {{lp|Spis treści/Szablony/Tom IV|Szablony - Tom IV}}.
== Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ==
{{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}}
* Moduły podstawowe
** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} procedur operujących na nazwach MediaWiki projektu.
** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje.
** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach.
** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne.
** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron.
** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście.
** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki.
** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki.
** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
q4jod0up6jqkiiqbw3zb9dh2tnuqlzh
Wikibooks:Moduły/Nazwy
4
63010
551915
541358
2026-08-16T04:41:39Z
Persino
2851
/* Spis treści funkcji nazw */
551915
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NAZWASERWISU|link=tak|wikipedia=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NAZWASERWISU|link=tak|klucz projektu=w|wikipedia=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NAZWASERWISU|link=tak|po=ie}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NAZWASERWISU|wikipedia=tak|link=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NAZWASERWISU|link=tak|klucz projektu=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzenie niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NAZWASERWISU|link=tak|wikipedia=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NAZWASERWISU|link=tak|klucz projektu=w}}
| komórka 2_1 = b | komórka 2_2 = {{NAZWASERWISU|link=tak|klucz projektu=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NAZWASERWISU|link=tak|klucz projektu=q}}
| komórka 5_1 = s | komórka 5_2 = {{NAZWASERWISU|link=tak|klucz projektu=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NAZWASERWISU|link=tak|klucz projektu=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NAZWASERWISU|link=tak|klucz projektu=n}}
| komórka 8_1 = v | komórka 8_2 = {{NAZWASERWISU|link=tak|klucz projektu=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NAZWASERWISU|link=tak|klucz projektu=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NAZWASERWISU|link=tak|klucz projektu=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NAZWASERWISU|link=tak|klucz projektu=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NAZWASERWISU|link=tak|klucz projektu=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikimania}}
}}
Kody projektów przedstawiają kody projektów, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NAZWASERWISU|link{{=}}tak|kod jezyka{{=}}|kod projektu{{=}}|klucz projektu{{=}}}} (ale tutaj bez kodów języka, czy języków), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NAZWASERWISU|link=tak|klucz projektu=d}}, przy pomocy biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektru {{NAZWASERWISU|klucz projektu=w|wikipedia=tak}}, a kod języka to przedstawia język, dzięki któremu poruzumiejemy się na pojekcie i w którym on jest właśnie pisany,jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NAZWASERWISU|Wikipedii|link=tak|klucz projektu=en:w}}, albo w tym drugim przypadku do angielskiego: {{NAZWASERWISU|link=tak|po=a|klucz projektu=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NAZWASERWISU|link=w|klucz projektu=w|Wikipedii}}, a pozostałe, względem polskiego {{NAZWASERWISU|link=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NAZWASERWISU}} i użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury przestrzeni nazw i nazw stron,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, oraz liczenie przy wykorzystywaniu tych konstrukcji, nazw sub- książki i strony, także nazwy stron korzeni (podstaw strony).
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
* {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ssrjru0evzgujf2qgq9csqdf8qtofou
551916
551915
2026-08-16T04:43:21Z
Persino
2851
/* Parametry zmiennych */
551916
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NAZWASERWISU|link=tak|wikipedia=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NAZWASERWISU|link=tak|klucz projektu=w|wikipedia=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NAZWASERWISU|link=tak|po=ie}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NAZWASERWISU|wikipedia=tak|link=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NAZWASERWISU|link=tak|klucz projektu=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzenie niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NAZWASERWISU|link=tak|wikipedia=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NAZWASERWISU|link=tak|klucz projektu=w}}
| komórka 2_1 = b | komórka 2_2 = {{NAZWASERWISU|link=tak|klucz projektu=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NAZWASERWISU|link=tak|klucz projektu=q}}
| komórka 5_1 = s | komórka 5_2 = {{NAZWASERWISU|link=tak|klucz projektu=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NAZWASERWISU|link=tak|klucz projektu=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NAZWASERWISU|link=tak|klucz projektu=n}}
| komórka 8_1 = v | komórka 8_2 = {{NAZWASERWISU|link=tak|klucz projektu=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NAZWASERWISU|link=tak|klucz projektu=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NAZWASERWISU|link=tak|klucz projektu=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NAZWASERWISU|link=tak|klucz projektu=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NAZWASERWISU|link=tak|klucz projektu=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikimania}}
}}
Kody projektów przedstawiają kody projektów, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NAZWASERWISU|link{{=}}tak|kod jezyka{{=}}|kod projektu{{=}}|klucz projektu{{=}}}} (ale tutaj bez kodów języka, czy języków), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NAZWASERWISU|link=tak|klucz projektu=d}}, przy pomocy biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektru {{NAZWASERWISU|klucz projektu=w|wikipedia=tak}}, a kod języka to przedstawia język, dzięki któremu poruzumiejemy się na pojekcie i w którym on jest właśnie pisany,jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NAZWASERWISU|Wikipedii|link=tak|klucz projektu=en:w}}, albo w tym drugim przypadku do angielskiego: {{NAZWASERWISU|link=tak|po=a|klucz projektu=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NAZWASERWISU|link=w|klucz projektu=w|Wikipedii}}, a pozostałe, względem polskiego {{NAZWASERWISU|link=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NAZWASERWISU}} i użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury przestrzeni nazw i nazw stron,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, oraz liczenie przy wykorzystywaniu tych konstrukcji, nazw sub- książki i strony, także nazwy stron korzeni (podstaw strony).
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3rlnc5e7ltw2wa7tcnwxiyaksq77e63
551919
551916
2026-08-16T04:51:12Z
Persino
2851
/* Parametry zmiennych */
551919
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NAZWASERWISU|link=tak|wikipedia=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NAZWASERWISU|link=tak|klucz projektu=w|wikipedia=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NAZWASERWISU|link=tak|po=ie}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NAZWASERWISU|wikipedia=tak|link=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NAZWASERWISU|link=tak|klucz projektu=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzenie niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NAZWASERWISU|link=tak|wikipedia=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NAZWASERWISU|link=tak|klucz projektu=w}}
| komórka 2_1 = b | komórka 2_2 = {{NAZWASERWISU|link=tak|klucz projektu=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NAZWASERWISU|link=tak|klucz projektu=q}}
| komórka 5_1 = s | komórka 5_2 = {{NAZWASERWISU|link=tak|klucz projektu=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NAZWASERWISU|link=tak|klucz projektu=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NAZWASERWISU|link=tak|klucz projektu=n}}
| komórka 8_1 = v | komórka 8_2 = {{NAZWASERWISU|link=tak|klucz projektu=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NAZWASERWISU|link=tak|klucz projektu=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NAZWASERWISU|link=tak|klucz projektu=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NAZWASERWISU|link=tak|klucz projektu=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NAZWASERWISU|link=tak|klucz projektu=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NAZWASERWISU|link=tak|klucz projektu=wikimania}}
}}
Kody projektów przedstawiają kody projektów, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NAZWASERWISU|link{{=}}tak|kod jezyka{{=}}|kod projektu{{=}}|klucz projektu{{=}}}} (ale tutaj bez kodów języka, czy języków), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NAZWASERWISU|link=tak|klucz projektu=d}}, przy pomocy biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektru {{NAZWASERWISU|klucz projektu=w|wikipedia=tak}}, a kod języka to przedstawia język, dzięki któremu poruzumiejemy się na pojekcie i w którym on jest właśnie pisany,jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NAZWASERWISU|Wikipedii|link=tak|klucz projektu=en:w}}, albo w tym drugim przypadku do angielskiego: {{NAZWASERWISU|link=tak|po=a|klucz projektu=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NAZWASERWISU|link=w|klucz projektu=w|Wikipedii}}, a pozostałe, względem polskiego {{NAZWASERWISU|link=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NAZWASERWISU}} i użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury przestrzeni nazw i nazw stron,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, oraz liczenie przy wykorzystywaniu tych konstrukcji, nazw sub- książki i strony, także nazwy stron korzeni (podstaw strony).
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
p0ewj0y4xvvqe8py4zukelzvqknrn2n
Wikibooks:Moduły/StronicowyParser/NumerLubNazwaArtykułówKsiążek
4
63515
551852
551538
2026-08-15T22:52:54Z
Persino
2851
/* {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|PobierzNumerLubNazweArtykulu}} */
551852
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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}.
=== {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|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">
local function PobierzNumerLubNazweArtykulu(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-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.
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}}.
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.
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-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ł.
=== {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} ===
Funkcja zamienia numerki z kropkami na tabelę, z nich.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNumerArtykuluNaTabele(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ł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|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">
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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ł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ===
Funkcja łączy numerację spisu z numeracją artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(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ł|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ł|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ł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|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ł|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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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ł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-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-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ł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|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ł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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ł|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ł|ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|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ł|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ł|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ł|ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|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ł|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">
local tab_dane_ksiazki=nil;
...
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;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h91nlirbktausmqe05q7xbemzp0wdse
551853
551852
2026-08-15T23:10:59Z
Persino
2851
551853
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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}.
=== {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|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">
local function PobierzNumerLubNazweArtykulu(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-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}}.
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.
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-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ł.
=== {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} ===
Funkcja zamienia numerki z kropkami na tabelę, z nich.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNumerArtykuluNaTabele(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ł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|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">
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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ł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ===
Funkcja łączy numerację spisu z numeracją artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(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ł|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ł|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ł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|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ł|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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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ł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-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-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ł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|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ł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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ł|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ł|ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|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ł|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ł|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ł|ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|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ł|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">
local tab_dane_ksiazki=nil;
...
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;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0bq2d1aau5woxm0v6z2dq7tv84jg9hj
551854
551853
2026-08-15T23:14:46Z
Persino
2851
551854
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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach.
=== {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} ===
==== {{Śródtytuł|PobierzNumerLubNazweArtykulu}}{{Code|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">
local function PobierzNumerLubNazweArtykulu(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-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}}.
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.
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-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}}}} ===
==== {{Śródtytuł|ZamienNumerArtykuluNaTabele}}{{Code|ZamienNumerArtykuluNaTabele}} ====
Funkcja zamienia numerki z kropkami na tabelę, z nich.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNumerArtykuluNaTabele(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ł|UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci}}{{Code|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">
local function UsuwaniePierwszychJedynekZWyliczaniaSpisuTresci(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ł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}{{Code|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}} ====
Funkcja łączy numerację spisu z numeracją artykułu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci(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ł|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ł|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ł|ZamienNumerArtykuluNaTabele}}, i z niego są usuwane początkowe jedynki przy pomocy {{LinkŚródtytuł|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ł|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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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ł|PobierzNumerLubNazweArtykulu}}) {{LinkPatrz|nazwa-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-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ł|ZamienNumerArtykuluNaTabele}}, usuwamy zbędne początkowe jedynki dzięki funkcji: {{LinkŚródtytuł|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ł|IntegrowanieNumeracjiArtykuluZWyliczaniemSpisuTresci}}. A jeżeli spis ten nie znajduje się w rozdziale głównym, wtedy robimy operację: {{LinkŚródtytuł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=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ł|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ł|ZamienNumerArtykuluNaTabele}}, co dalej w tym są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|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ł|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ł|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ł|ZamienNumerArtykuluNaTabele}}. Co dalej są usuwane początkowe jedynki na podstawie: {{LinkŚródtytuł|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ł|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">
local tab_dane_ksiazki=nil;
...
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;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
61ijhjqnsx0tu7vr2fsps8h9jdm1hoa
551855
551854
2026-08-15T23:18:05Z
Persino
2851
551855
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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach.
=== {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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">
local tab_dane_ksiazki=nil;
...
p.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;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8uk6mhjqybce79zdejhuswxqrspb9bd
551856
551855
2026-08-15T23:19:53Z
Persino
2851
/* Dalsza część funkcji */
551856
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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach.
=== {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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">
local tab_dane_ksiazki=nil;
...
p.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;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pzbipwaaprrrhdmto4hc2mnwr688n4e
551857
551856
2026-08-15T23:20:42Z
Persino
2851
/* Dalsza część funkcji */
551857
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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach.
=== {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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">
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);
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>
cvb15ck4e7dctyoh1t3u42ebccd41tj
551858
551857
2026-08-15T23:25:25Z
Persino
2851
/* Dalsza część funkcji */
551858
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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach.
=== {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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);
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>
5xikm9yapu751oqf38dl5ge23yv09sp
551859
551858
2026-08-15T23:30:29Z
Persino
2851
/* Dalsza część funkcji */
551859
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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach.
=== {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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>
7z36uxgnitwl3fgxzpgz5z1d1ma1fj1
551860
551859
2026-08-16T00:16:00Z
Persino
2851
/* {{Śródtytuł|funkcje lokalne}}Funkcje lokalne */
551860
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 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 ==
Funkcje lokalne potrzebne do użycia w funkcjach użytych w rozdziale: {{Code|{{LinkŚródtytuł|funkcje transportu}}}}, są zdefiniowane kolejno w modułach.
=== {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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>
rbk5edpowvyxwnnqrce8g3qajmkl7s6
551861
551860
2026-08-16T00:17:32Z
Persino
2851
551861
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}}.
artykułów
== {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw ==
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}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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>
ed8clyu9p0hynp0z6cyvowcb0olhmhg
551862
551861
2026-08-16T00:22:02Z
Persino
2851
/* {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw */
551862
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}}.
artykułów
== {{Ś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}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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 wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=p.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>
obph0m1fc4w8fjkrppb0xqvx765eneg
551863
551862
2026-08-16T00:24:13Z
Persino
2851
/* Dalsza część funkcji */
551863
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}}.
artykułów
== {{Ś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}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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>
o89cru3ge20d6pqbztxbrsrwtburz3w
551864
551863
2026-08-16T00:25:46Z
Persino
2851
551864
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}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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>
41wb2byb59buxj1vmgrc7umke54elj6
551865
551864
2026-08-16T00:27:30Z
Persino
2851
/* {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne */
551865
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}}}} ===
==== {{Ś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}}.
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.
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}}}} ===
==== {{Ś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ł|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>
i8ze1vh8nd00fv1hary0j5a3ed8vk6w
551866
551865
2026-08-16T00:33:24Z
Persino
2851
/* {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne}}}} */
551866
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}}}} ===
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}}.
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.
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}}}} ===
==== {{Ś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ł|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>
hrkdaoocf1xrukvqre0nvahejg90p8m
551867
551866
2026-08-16T00:34:00Z
Persino
2851
/* {{Code|{{ld2|StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne}}}} */
551867
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}}}} ===
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}}.
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.
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}}}} ===
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ł|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>
6qvvvvw7bz161qtd3ckk7bjmlnxj1o8
551871
551867
2026-08-16T00:55:01Z
Persino
2851
/* {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} */
551871
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}}}} ===
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 ujewmnych jest w kolejności od znaku zaczynającego listę: {{Code|<nowiki>*</nowiki>}}, {{Code|<nowiki>#</nowiki>}} i {{Code|<nowiki>:</nowiki>}}.
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}}}} ===
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ł|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>
l6ppsvx0gn3czrch8dynopvqudn1xm5
551884
551871
2026-08-16T01:15:46Z
Persino
2851
/* {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} */
551884
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}}}} ===
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>}}.
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}}}} ===
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ł|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>
5fcigh9t7fzfvhlkj5lnyogxgsqx6gj
551889
551884
2026-08-16T01:26:07Z
Persino
2851
/* {{Śródtytuł|funkcje lokalne}}Funkcje lokalne, numerków i nazw, potrzebne i pomocne */
551889
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>}}.
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ł|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>
k7dwm3pxtnokeho1qom3o2omok3jcby
551891
551889
2026-08-16T01:43:28Z
Persino
2851
/* {{Śródtytuł|p.PobierzNumerLubNazweArtykulu}}{{Code|p.PobierzNumerLubNazweArtykulu}} */
551891
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ł|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>
ezyxxm8gwb3omhg2blfgk63wmm5ud5m
Szablon:Link FA
10
63836
551933
549725
2026-08-16T10:35:39Z
Persino
2851
551933
wikitext
text/x-wiki
<includeonly><!--
-->{{Link FA/Wikibooks-interwiki
| styl plik = font-size:1em;line-height:1.2em;width:fit-content;height:fit-content;display:inline-block;vertical-align:top;
| rozmiar plik = 1.2emx1.2em
| styl tekst = font-size:1em;line-height:1.2em;display:inline-block;vertical-align:text-bottom;
| id = {{{id|}}}
| b = {{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}
| strona = {{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={{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}|kod projektu=b}}
|{{#invoke:Pudełko|Pełna nazwa jednostki}}
}}
| pudełko = {{Jeśli niepuste|{{{nazwa przestrzeni nazw|}}}|po lewy=:}}{{{nazwa jednostki|}}}
}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
bkvwt3rlsp4lcfwqbss98hpg5yxdox2
551936
551933
2026-08-16T10:42:16Z
Persino
2851
551936
wikitext
text/x-wiki
<includeonly><!--
-->{{Link FA/Wikibooks-interwiki
| styl plik = font-size:1em;line-height:1.2em;width:fit-content;height:fit-content;display:inline-block;vertical-align:top;
| rozmiar plik = 1.2emx1.2em
| styl tekst = font-size:1em;line-height:1.2em;display:inline-block;vertical-align:text-bottom;
| id = {{{id|}}}
| b = {{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}
| strona = {{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={{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}|kod projektu=b}}
|{{#invoke:Pudełko|Pełna nazwa jednostki}}
}}
| pudełko = {{Jeśli niepuste|{{{nazwa przestrzeni nazw|}}}|po lewy=:}}{{{nazwa jednostki|}}}
| linia = {{{linia|}}}
}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
fjay55m5hzewzzptcrfwv4a6qqmll7o
551949
551936
2026-08-16T11:14:44Z
Persino
2851
551949
wikitext
text/x-wiki
<includeonly><!--
-->{{Link FA/Wikibooks-interwiki
| styl plik = font-size:1em;line-height:1.2;width:fit-content;height:fit-content;display:inline-block;vertical-align:top;
| rozmiar plik = 1.2emx1.2em
| styl tekst = font-size:1em;line-height:1.2;display:inline-block;vertical-align:text-bottom;
| id = {{{id|}}}
| b = {{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}
| strona = {{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={{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}|kod projektu=b}}
|{{#invoke:Pudełko|Pełna nazwa jednostki}}
}}
| pudełko = {{Jeśli niepuste|{{{nazwa przestrzeni nazw|}}}|po lewy=:}}{{{nazwa jednostki|}}}
| linia = {{{linia|}}}
}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
sog5mraj15vrickbzatru7v4ldiu45j
551955
551949
2026-08-16T11:34:49Z
Persino
2851
551955
wikitext
text/x-wiki
<includeonly><!--
-->{{Link FA/Wikibooks-interwiki
| styl plik =
| rozmiar plik = 1.2emx1.2em
| styl tekst =
| id = {{{id|}}}
| b = {{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}
| strona = {{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={{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}|kod projektu=b}}
|{{#invoke:Pudełko|Pełna nazwa jednostki}}
}}
| pudełko = {{Jeśli niepuste|{{{nazwa przestrzeni nazw|}}}|po lewy=:}}{{{nazwa jednostki|}}}
| linia = {{{linia|}}}
}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
rw3mldjifokou5nwed6uvovj96s9ot1
551956
551955
2026-08-16T11:35:17Z
Persino
2851
551956
wikitext
text/x-wiki
<includeonly><!--
-->{{Link FA/Wikibooks-interwiki
| rozmiar plik = 1.2emx1.2em
| id = {{{id|}}}
| b = {{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}
| strona = {{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={{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}|kod projektu=b}}
|{{#invoke:Pudełko|Pełna nazwa jednostki}}
}}
| pudełko = {{Jeśli niepuste|{{{nazwa przestrzeni nazw|}}}|po lewy=:}}{{{nazwa jednostki|}}}
| linia = {{{linia|}}}
}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
m9usxy555pf04s8bn9ed05xrhqht80t
551957
551956
2026-08-16T11:35:52Z
Persino
2851
Anulowano wersję [[Special:Diff/551956|551956]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
551957
wikitext
text/x-wiki
<includeonly><!--
-->{{Link FA/Wikibooks-interwiki
| styl plik =
| rozmiar plik = 1.2emx1.2em
| styl tekst =
| id = {{{id|}}}
| b = {{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}
| strona = {{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={{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}|kod projektu=b}}
|{{#invoke:Pudełko|Pełna nazwa jednostki}}
}}
| pudełko = {{Jeśli niepuste|{{{nazwa przestrzeni nazw|}}}|po lewy=:}}{{{nazwa jednostki|}}}
| linia = {{{linia|}}}
}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
rw3mldjifokou5nwed6uvovj96s9ot1
551960
551957
2026-08-16T11:48:50Z
Persino
2851
551960
wikitext
text/x-wiki
<includeonly><!--
-->{{Link FA/Wikibooks-interwiki
| styl plik = {{{styl plik|}}}
| rozmiar plik = 1.2emx1.2em
| styl tekst = {{{styl tekst|}}}
| id = {{{id|}}}
| b = {{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}
| strona = {{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={{#if:{{#invoke:lang|istnieje|{{{1|en}}}}}|{{{1|en}}}|en}}|kod projektu=b}}
|{{#invoke:Pudełko|Pełna nazwa jednostki}}
}}
| pudełko = {{Jeśli niepuste|{{{nazwa przestrzeni nazw|}}}|po lewy=:}}{{{nazwa jednostki|}}}
| linia = {{{linia|}}}
}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
lnp58wj0o5sgdpnny9qfztjazfv3cs0
Szablon:Link FA/Wikibooks-interwiki
10
63837
551934
549719
2026-08-16T10:37:42Z
Persino
2851
551934
wikitext
text/x-wiki
<includeonly><!--
-->{{#if:{{{b|}}}|{{#tag:indicator|<!--
-->{{Plik
| plik = LinkFA-star.png
| id = {{Jeśli niepuste|{{{id|}}}|indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{puddełko|}}}|przed lewy=-}}-plik}}
| rozmiar = {{{rozmiar plik|}}}
| styl = {{{styl plik|}}}
| pozycja = brak
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Div|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}|name=indicator_Link_FA_wersji_językowych_polskiego_Wikibooks-{{{b|en}}}{{Jeśli niepuste|{{{puddełko|}}}|przed lewy=-}}|class=metadata topicon|id=status-icon}}<!--
-->{{DivLinia}}}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
2yjxbhca8c3r7m0h5bjyf0qz7jlmjd6
551935
551934
2026-08-16T10:39:27Z
Persino
2851
551935
wikitext
text/x-wiki
<includeonly><!--
-->{{#if:{{{b|}}}|{{#tag:indicator|<!--
-->{{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|}}}
| styl = {{{styl plik|}}}
| pozycja = brak
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Div|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}|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}}</noinclude>
ex87088hfzgcwigboalsxq81mitd0ej
551938
551935
2026-08-16T10:54:39Z
Persino
2851
551938
wikitext
text/x-wiki
<includeonly><!--
-->{{#if:{{{b|}}}<!--
-->|<!--
-->{{#if:{{{linia|}}}<!--
-->|<!--
-->{{#invoke:Ramka|Szablon|Nazwa=Link FA/Plik}}<!--
-->|<!--
-->{{#tag:indicator<!--
-->|{{#invoke:Ramka|Szablon|Nazwa=Link FA/Plik}}<!--
-->|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}}</noinclude>
tibl6xyf0y7y6q6r8zbfizh99s8lzpg
551948
551938
2026-08-16T11:10:49Z
Persino
2851
551948
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}}</noinclude>
abnu13r6aiqpezaqvd203qaib0odhir
Szablon:Link FA/opis
10
63838
551939
549726
2026-08-16T10:56:19Z
Persino
2851
/* Przykład */
551939
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* umieszczamy w linkach w identyfikatorze
* używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks
== Opis parametrów ==
* {{Code|1}} - kod języka
== 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}} - wynik: {{Link FA|de|linia=tak}}.
== 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>
nc25iro2w742f53usfk7rebe26hik8w
551942
551939
2026-08-16T11:01:24Z
Persino
2851
/* Przykład */
551942
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* umieszczamy w linkach w identyfikatorze
* używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks
== Opis parametrów ==
* {{Code|1}} - kod języka
== 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}}.
== 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>
ry7ueggux63bs6c6d1h9omwd84xydpg
551944
551942
2026-08-16T11:05:39Z
Persino
2851
/* Opis parametrów */
551944
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* umieszczamy w linkach w identyfikatorze
* używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks
== Opis parametrów ==
* {{Code|1}} - kod języka,
* {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.
== 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}}.
== 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>
441johv27vkcrv2uttzymxfsaxzmama
551945
551944
2026-08-16T11:07:57Z
Persino
2851
/* Przykład */
551945
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
* umieszczamy w linkach w identyfikatorze
* używany do zaznaczenia jednego z istniejących linków interwiki jako nagrodzonego na innych Wikibooks
== Opis parametrów ==
* {{Code|1}} - kod języka,
* {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.
== 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>
7vup4a7i54xax49kep916z47mwl4qgr
551961
551945
2026-08-16T11:53:36Z
Persino
2851
/* Użycie */
551961
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 ==
* {{Code|1}} - kod języka,
* {{Code|linia}} - lub gdy ten szablon ma być umieszczony w sekcji interwiki.
== 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>
5bgnb5cgoojgogjgn3178lqz1zvplq8
Wikipedysta:Persino/brudnopis12
2
63880
551822
551816
2026-08-15T14:18:36Z
Persino
2851
551822
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
e4cn8sms5gfz20p510jfvc5iidr5ckp
551824
551822
2026-08-15T14:38:31Z
Persino
2851
551824
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
14pjh90qg8pj8lw7l789m2kx8vircwd
551826
551824
2026-08-15T14:46:54Z
Persino
2851
551826
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
119wq2pazdh1epy0wa2aj4qybtkpt36
551827
551826
2026-08-15T15:04:42Z
Persino
2851
551827
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
----
{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
4mxv79s02zot4g3smc4p9cqhj1nb6iw
551828
551827
2026-08-15T15:46:04Z
Persino
2851
551828
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
----
<nowiki>{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}</nowiki>
ql4omohxvwrqju3eme7hzv3ppaqzeiv
551830
551828
2026-08-15T16:24:07Z
Persino
2851
551830
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Podział|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
----
<nowiki>{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}</nowiki>
1h068tp7lwlfwio7r4wlz72tvls4ai4
551831
551830
2026-08-15T17:29:07Z
Persino
2851
551831
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Podział|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----<nowiki>
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
----</nowiki>
<nowiki>{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}</nowiki>
qi72nbmlx97c6zk0ni9nm8ieosg3zg0
551832
551831
2026-08-15T17:38:35Z
Persino
2851
551832
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Podział|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
----
<nowiki>{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}</nowiki>
1h068tp7lwlfwio7r4wlz72tvls4ai4
551834
551832
2026-08-15T17:46:42Z
Persino
2851
551834
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Podział|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
<nowiki>{{PobierzNumerArtykułu|Spis treści|dane=3|który=2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}</nowiki>
----
{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
bttx1c5h7wx44zkiiw5wzes66d6bi4p
551836
551834
2026-08-15T18:03:01Z
Persino
2851
551836
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Podział|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|3.1|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|1|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|2|dane=3|który=4|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
<nowiki>{{PobierzNumerArtykułu|Spis treści|dane=3|który=2|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}</nowiki>
----
{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
80zlti9gw5ow7gzl56da6wbkv80z1f9
551838
551836
2026-08-15T19:31:08Z
Persino
2851
551838
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Podział|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|3.1|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|1|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|2|dane=3|który=4|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
----
{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
0waolns5168o9g52gyk1l4eop0sppng
551868
551838
2026-08-16T00:50:05Z
Persino
2851
551868
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Podział|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|3.1|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|1|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|2|dane=3|który=4|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
----
{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
* tytan
# tytan
: tytan
1c2q563bn2o227mxbykdg1medtsrp5k
551869
551868
2026-08-16T00:50:57Z
Persino
2851
551869
wikitext
text/x-wiki
{{PobierzNumerArtykułu|Podział|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Działy onomastyki|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|3.1|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant I|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|1|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Wariant II|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
{{PobierzNazwęArtykułu|2|dane=3|który=4|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
----
{{PobierzNumerArtykułu|Spis treści|dane=3|który=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=Wikijunior|nazwa jednostki=Polska/Spis treści}}
----
{{#invoke:StronicowyParser|PobierzDaneKsiążki|Wariant II|wyspecjalizowana=tak|dane=3|który=1|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Podział}}
* [[/tytan/]]
# [[/tytan/]]
: [[/tytan/]]
7guhh5bx6605qk9og6xbcjh3j6lwwby
Wikibooks:Moduły/StronicowyParser/AnalizaSpisuRzeczy/Tom IV
4
63919
551920
551806
2026-08-16T04:54:32Z
Persino
2851
/* {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} */
551920
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Funkcja znajdująca uwzględnia, że tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, może być zakodowany w bazie kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja wyszukuje rozdziały dodatnie równaniowe albo centrowane szablonowo lub znacznikowo, szablony do centrowania.
* Rozdziały równaniowe, to są rozdziały otoczone wokuł stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicjaa skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie.
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z innego nagłówka, z przechwyconego z elementu, w którym jest właśnie to,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
01hfnh9x01uuc6qmutpu9rbk9jd2vd0
551921
551920
2026-08-16T04:56:37Z
Persino
2851
/* {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} */
551921
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Funkcja znajdująca uwzględnia, że tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, może być zakodowany w bazie kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja wyszukuje rozdziały dodatnie równaniowe albo centrowane szablonowo lub znacznikowo, szablony do centrowania.
* Rozdziały równaniowe, to są rozdziały otoczone wokuł stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicjaa skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie.
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rk92t7zsr9rhrxw9y2zxdgh38vg6gd3
551922
551921
2026-08-16T04:57:40Z
Persino
2851
/* {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} */
551922
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/AnalizaSpisuRzeczy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}}{{Code|p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie}} ==
Funkcja wyszukuje w: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, najbliższy rozdział do przodu lub od tyłu w zależności od podanego parametru: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, w zakresach od: {{Code|liczba_od}} {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}, do: {{Code|liczba_do}} {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom III}}. Funkcja znajdująca uwzględnia, że tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, może być zakodowany w bazie kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}, a części jego bazy mogą być w postaci przeanalizowanej w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}}.
Funkcja wyszukuje rozdziały dodatnie równaniowe albo centrowane szablonowo lub znacznikowo, szablony do centrowania.
* Rozdziały równaniowe, to są rozdziały otoczone wokuł stron linii tekstu znakami {{Code|{{=}}}}, przykład: {{Code|<nowiki>== Tekst nagłówka ==</nowiki>}},
* Rozdziały, oczywiście, że dodatnie, nagłówkowe, to te: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{tag|h6}},
* Centrowane szablonowo, oznaczone są szablonami: {{s|Ce}}, {{s|Centruj}} i {{s|Center}},
* Centrowane znacznikowo, oznaczone są znacznikami: {{Tag|center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.WprowadzenieTekstuCentrowaneZnacznikowoSzablonowoLubDodatnie(tekst_rozwiniety_calego_artykulu,liczba_od,liczba_do,czy_od_tylu,czy_spis_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Definicja skrótowa funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - tekst artykułu zakodowanego, w którym wyszukuje się rozdziały dodatnie.
* {{Code|liczba_od}} - jak w: {{LinkPatrz|liczba_od|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|liczba_do}} - jak w: {{LinkPatrz|liczba_do|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|czy_od_tylu}} - jak w: {{LinkPatrz|czy_od_tylu|StronicowyParser/AnalizaSpisuRzeczy/Tom III}},
* {{Code|czy_spis_tresci}} {{Patrz|czy_spis_tresci}} - funkcja sprawdza, czy nagłówek spisu, jeśli istnieje, spełnia ściśle określone kryteria, jest to policzony nagłówek z funkcji: {{Code|{{sr|#p.AnalizaNapisuWprowadzeniaTekstu|p=StronicowyParser/SpisTreści}}}}, z tego samego nagłówka, przed transformacją, z przechwyconego z elementu, w którym jest właśnie to,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} - jak w: {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/AnalizaSpisuRzeczy/Tom I}},
== {{Śródtytuł|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}}{{Code|p.SzukaniePierwszegoLinkuNapisuNiestandardowegoWprowadzeniaTekstu}} ==
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
nsoodktqf1m0zfitrxbd9cmt30nvfq5
Śpiewnik/Za Ebru falą
0
63945
551842
2026-08-15T20:26:50Z
Ashaio
4702
nowa piosenka
551842
wikitext
text/x-wiki
{{T|Śpiewnik/NawigacjaOpis}}
== Muzyka ==
'''Autor:''' nieznany
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
<score raw="1" vorbis="1">
\version "2.19.0"
\header {
title = "Za Ebru falą"
poet = "Słowa: autor nieznany"
composer = "Muzyka: autor nieznany"
arranger = "Opracowanie: Leon Kociałkowski"
tagline = ""
}
\score{
<<
\new Staff \with { midiInstrument = "harmonica" } \relative g'{
\clef treble
\key g \major
\time 4/4
\tempo 4 = 90
\autoBeamOff
d4 g8 g g4 fis |
e4 e8 e e4 d |
fis4 fis8 fis e4 d8 a' |
a2 g4 r |
d4 d8 d c'4 b |
a4 gis8 a b4 gis |
fis4 fis8 fis fis4 d8 fis |
a2 g4 r \bar"|."
}
\addlyrics{ \small {
Za E -- bru fa -- lą go -- niąc spoj -- rze -- niem,
mło -- da Cy -- gan -- ka sie -- dzia -- ła,
Z_brzę -- kiem gi -- ta -- ry, z_ci -- chem we -- stchnie -- niem,
sze -- mra -- nia wi -- chru słu -- cha -- ła.
} }
>>
\layout{}
\midi{}
}
</score>
'''Źródło:''' Leon Kociałkowski, ''[https://polona.pl/item-view/a88f7ab4-6c86-43d9-af42-24042b773dcf?page=37 Lutnia polska : zbiór pieśni i piosenek obyczajowych i okolicznościowych : miłosnych, aryi i dumek, piosenek wiejskich : mazurów, krakowiaków, kujawiaków, obertasów, piosenek dla rzemieślników, weselnych : i różnej innej treści z melodyami. Tomik 3]''. Poznań, 1885. S. 38.
== Tekst ==
'''Autor:''' nieznany
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
{{Kolumny|2|
<poem>
1. Za Ebru falą goniąc spojrzeniem,
Młoda Cyganka siedziała,
Z brzękiem gitary, z cichem westchnieniem,
Szemrania wichru słuchała.
2. I tak dumając, oparła rękę,
W niebo rzuciła spojrzeniem,
I z nową łezką, z nowem westchnieniem,
Taką śpiewała piosenkę:
3. Żegnam was góry, żegnam was lasy,
I ciebie, echo kochane,
Co płacz dziecięcia, co śpiew dziewczyny,
Niesiesz w krainy nieznane.
4. Żegnam was ojcze, żegnam was matki,
Gdyż matki nigdym nie miała,
Nikt mej kolebki nie przybrał w kwiatki,
Dłoń obca pierś mi podała.
5. Żegnam was, żegnam, gdyż między wami
Napróżno śledzę oczyma,
By się pożegnać z braćmi, siostrami,
Sierota rodzeństwa nie ma!
6. Żegnam was góry, żegnam doliny,
Po raz ostatni już może,
Choć wczoraj jeszcze z moją drużyną,
Wieczorną witałam zorzę.
7. I śpiew skończyła, gitara spadła,
Z brzękiem się struny ozwały,
A twarz cyganki jak lilia zbladła,
Dwie łezki z ócz się polały.
</poem>
}}
'''Źródło:''' Leon Kociałkowski, ''[https://polona.pl/item-view/a88f7ab4-6c86-43d9-af42-24042b773dcf?page=37 Lutnia polska : zbiór pieśni i piosenek obyczajowych i okolicznościowych : miłosnych, aryi i dumek, piosenek wiejskich : mazurów, krakowiaków, kujawiaków, obertasów, piosenek dla rzemieślników, weselnych : i różnej innej treści z melodyami. Tomik 3]''. Poznań, 1885. S. 38.
== Zobacz też ==
{{Wikiźródła|Z_nad_Ebru_fale|Z nad Ebru fale}}
* ''[https://bibliotekapiosenki.pl/utwory/Cyganka_(Za_Ebru_fala_goniac_spojrzeniem_) Cyganka (Za Ebru falą goniąc spojrzeniem)]'' w serwisie ''[https://bibliotekapiosenki.pl/ Cyfrowa Biblioteka Polskiej Piosenki]''
* ''[https://staremelodie.pl/piosenka/3541/Za_Ebru_fala Za Ebru falą]'' w serwisie ''[https://staremelodie.pl/ Stare Melodie]''
pzu7kuxkjg1eer2pbgrn00er8chfxd8
Moduł:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne
828
63946
551843
2026-08-15T22:04:27Z
Persino
2851
Utworzono nową stronę „local p={}; p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie) local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne"); stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame); stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki); local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:…”
551843
Scribunto
text/plain
local p={};
p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
return p;
393k3v0sjfx4cmi4ktacr59w6md8yv9
551850
551843
2026-08-15T22:22:39Z
Persino
2851
Zabezpieczono stronę „[[Moduł:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Potrzebne]]” ([Edytowanie=Dozwolone tylko dla administratorów] (na czas nieokreślony) [Przenoszenie=Dozwolone tylko dla administratorów] (na czas nieokreślony))
551843
Scribunto
text/plain
local p={};
p.PobierzNumerLubNazweArtykulu=function(frame,tabela_listy_danych_analizy_ksiazki,__FUNKCJA,typ,zbieraj_dane_wszystkie)
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
stronicowyparser_potrzebne_modul:AnalizujArgumentySzablonu(frame);
stronicowyparser_potrzebne_modul:ParametryKonteneraWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
local tab_lista_artykulow_w_ksiazce=stronicowyparser_potrzebne_modul:TabelaListyStronWoluminu(frame,tabela_listy_danych_analizy_ksiazki);
if(not tab_lista_artykulow_w_ksiazce)then return "(błąd)";end;
local args=stronicowyparser_potrzebne_modul:Args(frame);
local parametry_modul=require("Module:Parametry");
local szablonowe_modul=require("Module:Szablonowe");
local naglowek=parametry_modul.CzyTak(args["nagłówek"]);
local nie_wszystkie=parametry_modul.CzyTak(args["nie wszystkie"]);
----
local dane=tonumber(args["dane"]);
if((not dane)or((dane~=1)and(dane~=2)and(dane~=3)))then dane=1;end;
----
local artykul_spisu=args["spis"];
artykul_spisu=artykul_spisu and parametry_modul["Odstępy"]{[1]=artykul_spisu,[2]="tak",} or nil;
local tab_artykul=(not naglowek)and {} or nil;
local poziomowo=parametry_modul.CzyTak(args["poziomowo"]);
local tab_poziomowo={};
local tab_poziomowo_1={};
local tab_poziomowo_2={};
local html_modul=require("Module:Html");
----
local function ParametrySzablonuPobierania()
if(not zbieraj_dane_wszystkie)then
local pierwszy_parametr_szablonu=nil;local czy_nazwa=nil;
if(not typ)then
pierwszy_parametr_szablonu=args[1] and ((not naglowek) and mw.ustring.gsub(html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true),"^([^#]*)#(.*)$","%1") or html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](args[1]),true)) or "Przykładowy artykuł";
else
pierwszy_parametr_szablonu=args[1] and ((not poziomowo) and (tonumber(args[1]) or 1) or args[1]) or ((not poziomowo) and 1 or "1");
czy_nazwa=parametry_modul.CzyTak(args["nazwa"]);
end;
return function()
return {pierwszy_parametr_szablonu,czy_nazwa,dane,};
end;
end;
end;
local pierwszy_parametr_szablonu=ParametrySzablonuPobierania();
----
local ktory=(tonumber(args["który"]) or 1);
local i=(not poziomowo) and 1 or nil;
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
local tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu=parametry_modul["KopiujTabelęElementów"](odczyt_tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu);
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_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
setmetatable(tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
local HNumerPoziomow_4=nil;
local HNumerPoziomow_3=nil
local HNumerPoziomow_2=nil;
local HNumerPoziomow_1=nil;
local HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomowNaglowkow_1=nil;
local HNumerPoziomowNaglowkow_2=nil;
local tab_numer=poziomowo and {} or nil;
local tab_numer_baza_spis_tresci=nil;
local tab_numer_3=nil
local tab_numer_4=nil;--poziomowo and {} or nil;
local spis=false;
local pierwszy_dodatni_naglowek=nil;
local pierwszy_ujemny_naglowek=nil;
local poprzedni_poziom_znakowy_rozdzialu=nil;
local poprzedni_tab_poziomowo=nil;
local poziom_pierwszego_dodatniego_naglowka=0;
local poziom_pierwszego_ujemnego_naglowka=0;
local poziom_zerowego_naglowka=0;
local poziom_srednikowego_naglowka=0;
local ostatni_rozdzial_dodatni=nil;
local ostatni_rozdzial_centrowany=nil;
local pierwszy_rozdzial_dodatni=nil;
local glowny_dodatni_rozdzial=nil;
local glowny_ujemny_rozdzial=nil;
local spis_tresci=nil;
local poziom_pierwszego_ujemnego_spisu_tresci=nil;
local ostatni_poczatek_artykulu=nil;
local pierwszy_rowny_rozdzial=nil;
local rozdzial;
local czy_pierwszy_nilowy=nil;
local czy_nienilowy_rozdzial=nil;
local czy_pierwszy_nilowy_rozdzial=nil;
local czy_ostatni_rozdzial_jest_centrowany=nil;
local glowny_spis_tresci_lub_rozdzial_ksiazki=nil;
local poprz_poziom_rozdzialu_lub_artykulu=nil;
local poprz_numeracji_rozdzialu_lub_artykulu=nil;
local poprz_numer_rozdzialu_lub_artykulu=nil;
local poprz_czysty_poziom_rozdzialu_lub_artykulu=nil;
local poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=nil;
local staly_dodatek_rozdzialu=0;
----
local poziom_spisu_tresci_dodatek=nil;
----
local odejmnij_od_dwukropka=0;
-----
local czy_w_trakcie_dwukropkowania=nil;
-----
local numer_poprz=nil;
----
local tab_lista_artykulow_w_ksiazce2=tab_lista_artykulow_w_ksiazce;
tab_lista_artykulow_w_ksiazce={};
local function TabLista(tab_lista)
local max_ile=0;
for name,value in pairs(tab_lista)do
max_ile=math.max(max_ile,name);
end;
local function Iterator(tab_lista)
local p2=0;
local s=0;
local pp=0;
local function InneTablica(numer)
local p1=0;
return function()
if((tab_lista[numer])and(tab_lista[numer][p1+1])and(tab_lista[numer][p1+1][6]==pp))then
p1=p1+1;
pp=pp+1;
return s,tab_lista[numer][p1];
end;
end;
end;
local function WszystkieInneTablica()
local tab={};
for i=1,max_ile-2,1 do
tab[i]=InneTablica(i+2);
end;
return function()
for i=1,max_ile-2,1 do
local wartosc,tab_artykul=tab[i]();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
end;
end;
end;
end;
--local p1=0;
--local p2=0;
--local s=0;
local iter_inne_tablice=WszystkieInneTablica();
return function()
s=s+1;
local wartosc,tab_artykul=iter_inne_tablice();
if((wartosc)and(tab_artykul))then
return wartosc,tab_artykul;
elseif((tab_lista[2])and(tab_lista[2][p2+1]))then
p2=p2+1;
pp=pp+1;
return s,tab_lista[2][p2];
else
return nil;
end;
end;
end;
local tab={};
local iter=Iterator(tab_lista);
for s,artykul_w_bazie in iter do
tab[s]=artykul_w_bazie;
end;
return tab;
end;
for s,tab_lista in ipairs( tab_lista_artykulow_w_ksiazce2)do
if(not tab_lista_artykulow_w_ksiazce[s])then tab_lista_artykulow_w_ksiazce[s]={};end;
tab_lista_artykulow_w_ksiazce[s][1]=tab_lista[1];
tab_lista_artykulow_w_ksiazce[s][2]=TabLista(tab_lista);
end;
----
local function ToNumberPoziomArtykulu(poziom_artykulu)
local numer_artykulu=tonumber(poziom_artykulu);
local numer_dodatkowy=((numer_artykulu)and(numer_artykulu>0)) and 0 or 1;
return (numer_artykulu or 0),numer_dodatkowy;
end;
local function ZerowyArtykul(tab_lista_2,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz)
if((not w_rozdziale)
and(poziom_zerowego_artykulu>0)
and(poziom_zerowego_naglowka>0))then
if(p>1)then
local czy_jest_nast=tab_lista_2[p-1];
if(czy_jest_nast)then
local numer=tonumber(tab_lista_2[p-1][2][1]);
if(numer>0)then
poziom_zerowego_artykulu=0;
end;
else
poziom_zerowego_artykulu=0;
end;
end;
elseif(poziom_zerowego_artykulu==0)then
poziom_zerowego_artykulu=poziom_zerowego_artykulu_poprz;
end;
return poziom_zerowego_artykulu;
end;
local function OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka)
if((not czy_w_trakcie_dwukropkowania)and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=math.max((#poziom_poczatku_artykulu-(numer_poprz or 0)-1),0);
czy_w_trakcie_dwukropkowania=true;
elseif((czy_w_trakcie_dwukropkowania)and(not mw.ustring.match(poziom_poczatku_artykulu,"^:")))then
odejmnij_od_dwukropka=0;
czy_w_trakcie_dwukropkowania=nil;
end;
if(odejmnij_od_dwukropka>0)then
poziom_artykulu=poziom_artykulu-odejmnij_od_dwukropka;
if(poziom_artykulu<1)then
poziom_artykulu=1;
end;
end;
return poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania;
end;
local function PoziomNumeracji(numeracja_artykulu)
if(numeracja_artykulu)then
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"^%s*%.*(.-)%.*%s*$","%1");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%s+","");
numeracja_artykulu=mw.ustring.gsub(numeracja_artykulu,"%.+",".");
local tab_numeracja_artykulu=numeracja_artykulu and mw.text.split(numeracja_artykulu,"%s*%.%s*",false);
local poziom_numeracji_artykulu=((numeracja_artykulu~="") and (#tab_numeracja_artykulu) or 0);
return poziom_numeracji_artykulu;
end;
return 0;
end;
-----
local function UzyskajArtykul(artykul,pomin_link)
local artykul=(not naglowek)and stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul,pomin_link)
or stronicowyparser_potrzebne_modul.UzyskanieNazwyStronyWoluminuZParametramiOrazIdentyfikatoremZTabeliWoluminu(artykul,true,pomin_link);
return artykul;
end;
----
local nazwa_spisu=nil;local numer_spisu=nil;
local prawdziwy_poziom_rozdzialu_poprz=nil;
for m,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
local poziom_rozdzialu;
local poziom_poczatku_rozdzialu=nil;
local poziom_znakowy_rozdzialu=nil;
local prawdziwy_poziom_rozdzialu=nil;
local poziom_naglowka=nil;
local poziom_naglowka_bez_poprawki=nil;
local numer_rozdzialu=nil;
local tab_numer_zapasowe=nil;
local poziom_numeracji_rozdzialu=nil;
local czy_jest_teraz_spis_tresci=nil;
local czy_rozdzial_centrowany=nil;
-----
local zbieraj_dane=true;
-----
czy_nienilowy_rozdzial=tab_lista[1][2][1];
poziom_rozdzialu=czy_nienilowy_rozdzial or 0;
----
rozdzial=tab_lista[1][1];
----
local czy_rozdzial_spisu=false;
if((m==1)and(not numer_spisu)and(not nazwa_spisu))then
if(czy_nienilowy_rozdzial==nil)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
elseif((m>2)and(numer_spisu)and(nazwa_spisu))then
if(poziom_rozdzialu==1)then
local spis=tab_lista[1]["spis"];
if(spis)then
nazwa_spisu=spis[1];
numer_spisu=spis[2];
czy_rozdzial_spisu=true;
pierwszy_dodatni_naglowek=false;
pierwszy_ujemny_naglowek=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
end;
end;
-----
local function PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu)
if(not poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
if(poziom_naglowka==poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local poziom_numeracji=poziom_numeracji_rozdzialu-(staly_dodatek_rozdzialu[1] or 0);
return poziom_naglowka+((poziom_numeracji>=0)and poziom_numeracji or 0),staly_dodatek_rozdzialu;
elseif(poziom_naglowka~=poprz_czysty_poziom_rozdzialu_lub_artykulu)then
staly_dodatek_rozdzialu={poziom_numeracji_rozdzialu,};
return poziom_naglowka,staly_dodatek_rozdzialu;
end;
end;
local function PoziomNumerNaglowkaStalyDodatekRozdzialu(staly_dodatek_rozdzialu,poziom_naglowka,poprz_czysty_poziom_rozdzialu_lub_artykulu)
if(parametry_modul.TypeTable(staly_dodatek_rozdzialu))then
return 0;
elseif(poziom_naglowka>poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[2] or 0);
return dodatek;
elseif(poziom_naglowka<poprz_czysty_poziom_rozdzialu_lub_artykulu)then
local dodatek=(parametry_modul.TypeTable(staly_dodatek_rozdzialu) and staly_dodatek_rozdzialu[1] or 0);
return dodatek;
end;
end;
local function PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,poziom_rozdzialu,poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami)
local function JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu)
return ((poziom_poczatku_artykulu)and(poziom_poczatku_rozdzialu)
and(((mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))
and((mw.ustring.match(poziom_poczatku_artykulu,"^:"))
or(mw.ustring.match(poziom_poczatku_artykulu,"^#"))
)
)or((mw.ustring.match(poziom_poczatku_rozdzialu,"^#"))and(mw.ustring.match(poziom_poczatku_artykulu,"^:")))));
end;
if(JedenDwa(poziom_poczatku_rozdzialu,poziom_poczatku_artykulu))then
local roznica=poziom_rozdzialu-poziom_artykulu;
if(roznica>=0)then
staly_poziom_rozdzialu_z_artykulami=roznica+1;
else
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+staly_poziom_rozdzialu_z_artykulami),staly_poziom_rozdzialu_z_artykulami;
elseif(JedenDwa(poziom_poczatku_artykulu,poziom_poczatku_rozdzialu))then
staly_poziom_rozdzialu_z_artykulami=0;
elseif(#poziom_poczatku_artykulu==0)then
staly_poziom_rozdzialu_z_artykulami=0;
end;
return (poziom_artykulu+(staly_poziom_rozdzialu_z_artykulami or 0)),staly_poziom_rozdzialu_z_artykulami;
end;
local function CzyWliczacBezPoziomowo(p,i)
if(naglowek)then return true;end;
local tab=tab_lista[2];
if(not tab)then return false;end;
if(p==i)then return true;end;
local tab_artykul2={};
for k=p+1,i,1 do
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[k][1]);
local artykul=czy_table_baza_artykulu and tab[k][1][1] or tab[k][1];
artykul=UzyskajArtykul(artykul);
-----
if(k==i)then
if((tab_artykul[artykul])or(tab_artykul2[artykul]))then
return false;
else
return true;
end;
else
tab_artykul2[artykul]=true;
end;
end;
return false;
end;
local function IleNajblizejDalejBezPoziomowo(p)
if(naglowek)then return (p+1);end;
local tab=tab_lista[2];
if(not tab)then return (p+1);end;
local tab_artykul2={};
local i=p+1;
while(true)do
if(not tab[i])then return i;end;
-----
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab[i][1]);
local artykul=czy_table_baza_artykulu and tab[i][1][1] or tab[i][1];
artykul=UzyskajArtykul(artykul);
-----
if((not tab_artykul[artykul])and(not tab_artykul2[artykul]))then
return i;
end;
tab_artykul2[artykul]=true;
i=i+1;
end;
return i;
end;
----
local function AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulowa,czy_rozdzial,__FUNKCJA)
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka or 0;
local poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka or 0;
local staly_dodatek_artykulu=0;
--local poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
--local poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
local staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu or 0;
local poczatek_poprz=nil;
local ostatni_rozdzial_dodatni_temp=ostatni_rozdzial_dodatni;
local ostatni_rozdzial_centrowany_temp=ostatni_rozdzial_centrowany;
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local ostatni_artykul_w_rozdziale=nil;
local czy_dwukropek=nil;
local czy_rozdzial_centrowany_temp=nil;
----
local odejmnij_od_dwukropka=0;
local czy_w_trakcie_dwukropkowania=nil;
local poziom_znakowy_rozdzialu=tab_lista[1][2][1] or 0;
local poziom_rozdzialu=math.abs(poziom_znakowy_rozdzialu);
local numer_poprz=(poziom_znakowy_rozdzialu<0)and poziom_rozdzialu or nil;
for p,artykul_w_bazie in ipairs(tab_lista_artykulowa)do
if((czy_rozdzial and (p>m)) or (not czy_rozdzial))then
if((not czy_rozdzial) and (CzyWliczacBezPoziomowo(1,p)) or czy_rozdzial)then
local rozdzial=nil;
local poziom_artykulu;
if(czy_rozdzial)then
artykul_w_bazie=artykul_w_bazie[1];
rozdzial=artykul_w_bazie[1];
czy_rozdzial_centrowany_temp=artykul_w_bazie[2][4];
poziom_artykulu=artykul_w_bazie[2][1];
if(poziom_artykulu==1)then
local spis=artykul_w_bazie["spis"];
if(spis)then
local nazwa_spisu_temp=spis[1];
local numer_spisu_temp=spis[2];
if((nazwa_spisu_temp)and(numer_spisu_temp))then
return;
end;
end;
end;
else
poziom_artykulu=artykul_w_bazie[2][1];
end;
local czy_dwukropek_aktualnie=nil;
if((czy_rozdzial)and(rozdzial)and(poziom_artykulu)and(poziom_artykulu==0))then
czy_dwukropek_aktualnie=mw.ustring.match(rozdzial,":%s*$")
czy_dwukropek=czy_dwukropek_aktualnie or czy_dwukropek;
end;
local poziom_znakowy_artykulu=poziom_artykulu;
poziom_artykulu=math.abs(poziom_artykulu);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2]; ----
if((not czy_rozdzial)or((czy_rozdzial)and(poziom_znakowy_artykulu<0)))then
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local w_rozdziale=(not czy_rozdzial) and artykul_w_bazie[2][4] or nil;
if((not czy_rozdzial)and(not w_rozdziale))then
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
local __poziom_poczatku_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
end;
local poziom_srednikowego_naglowka_srednik=0;
local czy_artykul_srednik;
local poziom_srednikowego_naglowka_srednik_temp;
if(czy_rozdzial)then
if(poziom_znakowy_artykulu)then
if(poziom_znakowy_artykulu==0)then
poziom_zerowego_naglowka_temp=1;
elseif(poziom_znakowy_artykulu>0)then
poziom_zerowego_naglowka_temp=0;
poziom_srednikowego_naglowka_temp=0;
ostatni_rozdzial_dodatni_temp=(not czy_rozdzial_centrowany_temp) and ostatni_rozdzial_dodatni_temp or nil;
czy_dwukropek=nil;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
end;
end;
end;
else
poziom_srednikowego_naglowka_srednik_temp=mw.ustring.match(poziom_poczatku_artykulu,"^;+.*$");
if(poziom_srednikowego_naglowka_srednik_temp)then
poziom_srednikowego_naglowka_srednik=#poziom_srednikowego_naglowka_srednik_temp;
poziom_srednikowego_naglowka_temp=poziom_srednikowego_naglowka_srednik;
czy_artykul_srednik=true;
end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
ostatni_rozdzial_dodatni_temp=0;
ostatni_rozdzial_centrowany_temp=w_rozdziale and 0 or ostatni_rozdzial_centrowany_temp;
end;
local id=(not czy_rozdzial)and artykul_w_bazie[4] or nil;
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
local poziom_artykulu_zerowy;
if(not czy_rozdzial)then
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
poziom_artykulu_zerowy=poziom_artykulu;
----
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista_artykulowa,p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka_temp,poziom_zerowego_artykulu_poprz);
----
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu;
end;
if((not czy_rozdzial)and(poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_artykulu+poziom_naglowka_bez_poprawki;
else
---
if(not czy_rozdzial)then
poziom_zerowego_naglowka_temp=((not w_rozdziale)and(ostatni_artykul_w_rozdziale)and(poziom_zerowego_naglowka_temp>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka_temp-1) or poziom_zerowego_naglowka_temp;
end;
poziom_artykulu=(((czy_rozdzial)and(--[[((ostatni_rozdzial_centrowany_temp or 0)>0)or]](poziom_znakowy_artykulu<=0))or(not czy_rozdzial))and ((ostatni_rozdzial_centrowany_temp or 0)+(ostatni_rozdzial_dodatni_temp or 0)+(poziom_zerowego_naglowka_temp+(((poziom_znakowy_artykulu)and(poziom_znakowy_artykulu==0)and(czy_dwukropek)and(not czy_dwukropek_aktualnie))and 1 or 0)+poziom_srednikowego_naglowka_temp)) or 0)+(((czy_rozdzial)and(poziom_znakowy_artykulu>0)and(not czy_rozdzial_centrowany_temp))and ostatni_rozdzial_centrowany_temp or 0)+((not poziom_srednikowego_naglowka_srednik_temp)and poziom_artykulu or 0)--[[+staly_dodatek_rozdzialu_temp]]+(id and 1 or 0);
-----
if(czy_rozdzial)then
if(poziom_znakowy_artykulu==0)then
if(not czy_dwukropek_aktualnie)then
poziom_zerowego_naglowka_temp=1+(czy_dwukropek and 1 or 0);
else
poziom_zerowego_naglowka_temp=2;
end;
end;
end;
end;
if(not czy_rozdzial)then
if(w_rozdziale)then ostatni_artykul_w_rozdziale=true else ostatni_artykul_w_rozdziale=false;end;
end;
if((czy_rozdzial)and(poziom_znakowy_artykulu>0))then
if(w_rozdziale)then
ostatni_rozdzial_dodatni_temp=nil;
ostatni_rozdzial_centrowany_temp=poziom_znakowy_artykulu;
else
ostatni_rozdzial_dodatni_temp=poziom_znakowy_artykulu;
end;
end;
poczatek_poprz=poziom_poczatku_artykulu;
poziom_artykulu=poziom_artykulu+((czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
local wynik=__FUNKCJA(poziom_artykulu,poziom_naglowka_bez_poprawki,poziom_znakowy_artykulu,w_rozdziale,ostatni_rozdzial_centrowany_temp,{poziom_srednikowego_naglowka_temp,poziom_srednikowego_naglowka_srednik,},poziom_zerowego_naglowka_temp,poziom_artykulu_zerowy);
ostatni_rozdzial_dodatni_temp=(czy_rozdzial_centrowany_temp) and poziom_artykulu or ostatni_rozdzial_dodatni_temp;
if(not parametry_modul.TypeNil(wynik))then return wynik;end;
local numer_baza=artykul_w_bazie[2][1];
local function __tonumber(liczba)
if(czy_rozdzial)then
if(liczba<0)then
liczba=(liczba and (-liczba) or nil);
return liczba;
end;
else
return liczba;
end;
return nil;
end;
numer_poprz=(not w_rozdziale)and __tonumber(numer_baza) or ((w_rozdziale)and numer_poprz or nil);
end;
end;
end;
end;
local function IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulowa,bez_sprawdzania)
local ile_w_rozdziale=0;
for s=1,#tab_lista_artykulowa[2],1 do
if(bez_sprawdzania or CzyWliczacBezPoziomowo(1,s))then
local w_rozdziale=tab_lista_artykulowa[2][s][2][4];
if(w_rozdziale)then
ile_w_rozdziale=ile_w_rozdziale+1;
else
break;
end;
end;
end;
return ile_w_rozdziale
end;
local function KoniecSpisuTresci(poziom_naglowka_bez_poprawki,znak_poziom,czy_srednik)
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
local function UsunElementySpisTresci(tab_numer_temp)
if(not tab_numer_temp)then return;end;
local tab_numer_prawd;local HNumerPoziomow_prawd;local HNumerPoziomowNaglowkow_prawd;
for i=#tab_numer_temp,1,-1 do
local tab_naglowka=tab_numer_temp[i];
if((tab_naglowka[4]>=poziom_naglowka_bez_poprawki)or((tab_naglowka[5]<0)and((znak_poziom>0)or(czy_srednik))))then
tab_numer_prawd=tab_naglowka[1];
HNumerPoziomow_prawd=tab_naglowka[2];
HNumerPoziomowNaglowkow_prawd=tab_naglowka[3]
table.remove(tab_numer_temp,i);
else
break;
end;
end;
if(tab_numer_prawd)then
tab_numer=tab_numer_prawd;
HNumerPoziomow=HNumerPoziomow_prawd;
if(HNumerPoziomowNaglowkow_prawd)then HNumerPoziomowNaglowkow=HNumerPoziomowNaglowkow_prawd;end;
return true;
end;
return nil;
end;
if(znak_poziom>0)then
if(not UsunElementySpisTresci(tab_numer_baza_spis_tresci))then return;end;
if(#tab_numer_baza_spis_tresci==0)then
glowny_spis_tresci_lub_rozdzial_ksiazki=false;
end;
tab_poziomowo={};
end;
end;
end;
----
-----
tab_poziomowo={};
local rozdzial_bez_dwukropka=mw.ustring.match(rozdzial,"^%s*(.-)%s*:[%s:]*$") or rozdzial;
czy_jest_teraz_spis_tresci=((m==1)and (czy_nienilowy_rozdzial and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or ((not czy_nienilowy_rozdzial)and true or false))
or ((m>1)and tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu[rozdzial_bez_dwukropka]
or false));
poziom_spisu_tresci_dodatek=(czy_jest_teraz_spis_tresci and ((poziom_rozdzialu==0)and 1 or 0) or (poziom_spisu_tresci_dodatek or 0));
local czy_nie_ten_rozdzial;
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0))then
czy_nie_ten_rozdzial=false;
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
else
--glowny_spis_tresci_lub_rozdzial_ksiazki=false;
if((not czy_jest_teraz_spis_tresci)and(nie_wszystkie))then
czy_nie_ten_rozdzial=tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu[rozdzial_bez_dwukropka];
end;
end;
if((m==1)and(not czy_nienilowy_rozdzial))then
czy_pierwszy_nilowy=true;
czy_pierwszy_nilowy_rozdzial=true;
end;
if(not czy_nie_ten_rozdzial)then
if(poziomowo)then
prawdziwy_poziom_rozdzialu=poziom_rozdzialu;
poziom_poczatku_rozdzialu=tab_lista[1][2][2];
local numeracja_rozdzialu=tab_lista[1][2][3];
poziom_numeracji_rozdzialu=PoziomNumeracji(numeracja_rozdzialu);
czy_rozdzial_centrowany=tab_lista[1][2][4];
----
local czy_z_dwukropkiem=nil;
----
if(poziom_rozdzialu<0)then
poziom_rozdzialu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(-poziom_rozdzialu,poziom_poczatku_rozdzialu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
numer_poprz=-tab_lista[1][2][1] or 0;
poziom_rozdzialu=-poziom_rozdzialu;
else
numer_poprz=nil;
czy_w_trakcie_dwukropkowania=nil;
odejmnij_od_dwukropka=0;
end;
local czy_sredniki;
-----
poprzedni_poziom_znakowy_rozdzialu=poziom_znakowy_rozdzialu;
poziom_znakowy_rozdzialu=poziom_rozdzialu;
poziom_rozdzialu=math.abs(poziom_rozdzialu);
local poprzedni_tab_poziomowo_temp=poprzedni_tab_poziomowo;
if(poziom_znakowy_rozdzialu>0)then
poziom_naglowka=poziom_rozdzialu+(czy_rozdzial_centrowany and 0 or (ostatni_rozdzial_centrowany or 0));
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_spisu_tresci_dodatek=0;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
poziom_pierwszego_ujemnego_spisu_tresci=nil;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if((m>2)or(not czy_pierwszy_nilowy))then
poprzedni_tab_poziomowo=nil;
end;
poziom_zerowego_naglowka=0;
poziom_srednikowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,1);
if((tab_numer_baza_spis_tresci)and(#tab_numer_baza_spis_tresci>0)and(not spis_tresci))then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
spis_tresci=true;
pierwszy_rozdzial_dodatni=1;
else
if(not pierwszy_rozdzial_dodatni)then
pierwszy_rozdzial_dodatni=1;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,1);
else
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
end;
end;
if(czy_rozdzial_centrowany)then
ostatni_rozdzial_dodatni=nil;
ostatni_rozdzial_centrowany=poziom_rozdzialu;
else
ostatni_rozdzial_dodatni=poziom_rozdzialu;
end;
elseif(poziom_znakowy_rozdzialu<0)then
czy_sredniki=mw.ustring.match(poziom_poczatku_rozdzialu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
----
ostatni_poczatek_artykulu=nil;
pierwszy_rowny_rozdzial=nil;
----
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
----
if((poprz_ujemnego_rozdzialu_dodatniego_rozdzialu)and(poprz_ujemnego_rozdzialu_dodatniego_rozdzialu>0))then
pierwszy_ujemny_naglowek=nil;
end;
end;
----
poziom_srednikowego_naglowka=poziom_rozdzialu;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0) + (ostatni_rozdzial_dodatni or 0) + poziom_zerowego_naglowka + poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-poziom_srednikowego_naglowka;
poziom_rozdzialu=poziom_srednikowego_naglowka;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
else
if(not pierwszy_rowny_rozdzial)then
if((ostatni_poczatek_artykulu)
and(#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)
and(mw.ustring.match(ostatni_poczatek_artykulu,"^*"))
and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:"))
)then
poziom_rozdzialu=poziom_rozdzialu+1;
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
pierwszy_rowny_rozdzial=1;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
else
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
else
if((not ostatni_poczatek_artykulu)or((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^*"))))then
pierwszy_rowny_rozdzial=0;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^:")))then
pierwszy_rowny_rozdzial=1;
elseif((#ostatni_poczatek_artykulu==#poziom_poczatku_rozdzialu)and(mw.ustring.match(poziom_poczatku_rozdzialu,"^#")))then
pierwszy_rowny_rozdzial=nil;
end;
poziom_rozdzialu=poziom_rozdzialu+(pierwszy_rowny_rozdzial or 0);
poziom_znakowy_rozdzialu=-poziom_rozdzialu;
poziom_naglowka=poziom_rozdzialu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka+((not czy_jest_teraz_spis_tresci) and poziom_spisu_tresci_dodatek or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
end;
----
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
----
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
local numer_rozdzialu_dodatniego=HNumerPoziomowNaglowkow(0) or 0;
if(numer_rozdzialu_dodatniego>=numer_rozdzialu)then
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,numer_rozdzialu_dodatniego+1);
end;
end;
else
if((m>1)or((m==1)and(not czy_pierwszy_nilowy)))then
local poziom_zerowego_naglowka_temp=poziom_zerowego_naglowka;
czy_z_dwukropkiem=mw.ustring.match(rozdzial,":%s*$");
local dodatek=((czy_z_dwukropkiem)and 1 or 0);
poziom_zerowego_naglowka=1+((not czy_z_dwukropkiem)and ((poziom_zerowego_naglowka_temp==2) and 1 or 0) or 1);
poziom_naglowka=1+(((not czy_z_dwukropkiem)and(poziom_zerowego_naglowka_temp==2))and 1 or 0)+ (ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0) + 0+poziom_srednikowego_naglowka;
poziom_naglowka_bez_poprawki=poziom_naglowka;
poziom_naglowka,staly_dodatek_rozdzialu=PoziomNumerNaglowka(poziom_naglowka,poziom_numeracji_rozdzialu,poprz_poziom_rozdzialu_lub_artykulu,poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu);
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1);
numer_rozdzialu=HNumerPoziomow(poziom_naglowka);
poziom_znakowy_rozdzialu=-1;
poziom_rozdzialu=1;
else
poziom_zerowego_naglowka=0;
numer_rozdzialu=0;
poziom_naglowka=(ostatni_rozdzial_centrowany or 0);
poziom_naglowka_bez_poprawki=poziom_naglowka;
staly_dodatek_rozdzialu=0;
end;
end;
if(poziom_znakowy_rozdzialu>0)then
local numer=HNumerPoziomowNaglowkow(poziom_naglowka);
elseif(poziom_znakowy_rozdzialu<0)then
end;
if(poziom_rozdzialu>0)then
if(((czy_ostatni_rozdzial_jest_centrowany)and(ostatni_rozdzial_centrowany or 0)>0)and(#tab_numer>0)and(tab_numer[#tab_numer]==0)and(#tab_numer<=numer_rozdzialu))then
tab_numer[#tab_numer]=nil;
numer_rozdzialu=HNumerPoziomow(poziom_naglowka,((numer_rozdzialu>1)and(numer_rozdzialu-1) or 1));
czy_ostatni_rozdzial_jest_centrowany=nil;
elseif(poprzedni_tab_poziomowo)then
local lens=math.min(#poprzedni_tab_poziomowo,numer_rozdzialu-#tab_numer);
local len_tab_numer=#tab_numer;
local min_lens=math.min(#poprzedni_tab_poziomowo,lens);
for i=1,min_lens,1 do
tab_numer[len_tab_numer+i]=poprzedni_tab_poziomowo[i];
end;
for i=min_lens+1,#tab_numer do
tab_numer[len_tab_numer+i]=nil;
end;
end;
if(#tab_numer<numer_rozdzialu)then
for i=#tab_numer+1,numer_rozdzialu,1 do
table.insert(tab_numer,1);
end;
elseif(#tab_numer>numer_rozdzialu)then
for i=#tab_numer, numer_rozdzialu+1,-1 do
table.remove(tab_numer,i);
end;
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
else
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0) + 1;
end;
end;
local function CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()
if(poziom_rozdzialu==0)then return true;end;
if(poziom_znakowy_rozdzialu>0)then
local ile_w_rozdziale_w_naglowku_artykulow=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,true);
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(ile_w_rozdziale_w_naglowku_artykulow>0)then return true;end;
if(poziom_znakowy_naglowka>0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
return true;
end;
end;
end);
elseif(((m==1)
or(((m==2)and(czy_pierwszy_nilowy_rozdzial))or((tab_lista_artykulow_w_ksiazce[m-1])
and((tab_lista_artykulow_w_ksiazce[m-1][1][2][1] or 0)>0)and(tab_lista_artykulow_w_ksiazce[m-1][2])and(#tab_lista_artykulow_w_ksiazce[m-1][2]==IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista_artykulow_w_ksiazce[m-1],true)))))
and(poziom_znakowy_rozdzialu<0))then
local czy_artykuly=nil;local tak_wynik=nil;
if(tab_lista[2])then
local czy_w_rozdziale_artykuly=nil;
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,_,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
--[[if(((((not czy_z_dwukropkiem)and(czy_w_rozdziale_artykuly))or(poziom_artykulu-(poziom_zerowego_naglowka or 0)<=poziom_naglowka)or(poziom_artykulu-(poziom_srednikowego_naglowka[1] or 0)<=poziom_naglowka))and(poziom_artykulu_zerowy)and(poziom_artykulu_zerowy==0)and(poziom_zerowego_naglowka)and(poziom_zerowego_naglowka>0))and((m>2)or((m==2)and(not czy_pierwszy_nilowy_rozdzial))))then
return true;
end;]]
if(poziom_artykulu<=poziom_naglowka)then
return true;
end;
else
czy_w_rozdziale_artykuly=true;
end;
end);
tak_wynik=wynik;
end;
if((czy_artykuly)or(m==1))then
local wynik=AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_aktualnego_naglowka,poziom_naglowka,poziom_znakowy_naglowka,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_naglowka<=0)then
if(poziom_aktualnego_naglowka<=poziom_naglowka)then
--if((poziom_srednikowego_naglowka[2])and(poziom_srednikowego_naglowka[2]>0))then
--return false;
--else
return true;
--end;
end;
else
if((m==1)and(poziom_znakowy_rozdzialu<0)and(poziom_znakowy_naglowka>0))then return true;end;
return false;
end
end);
if(wynik~=nil)then return wynik;end;
if(tak_wynik~=nil)then return tak_wynik;end;
return true;
else
return true;
end;
else
return true;
end;
end;
local function DodajNaSamPoczatek()
local function ArtykulyNieWRozdziale()
local ile=0;
if(tab_lista[2])then
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local w_rozdziale=artykul_w_bazie[2][4];
if(not w_rozdziale)then
ile=ile+1;
end;
end;
end;
return ile;
end;
if((tab_lista_artykulow_w_ksiazce[m+1])and(ArtykulyNieWRozdziale()>0)
and((
(poziom_znakowy_rozdzialu>0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_znakowy_rozdzialu>0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
return false;
end)
)or(
(poziom_znakowy_rozdzialu<0)
and AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka_temp,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_srednikowego_naglowka_temp[2])and(poziom_srednikowego_naglowka)and(poziom_srednikowego_naglowka_temp[2]>poziom_srednikowego_naglowka))then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end;
end;
return false;
end)
))
)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
table.insert(tab_numer,0);
return true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
return false;
end;
end;
if((m==1)and(czy_pierwszy_nilowy)and(poziom_znakowy_rozdzialu==0))then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
tab_numer={};
elseif((czy_jest_teraz_spis_tresci)and((poziom_znakowy_rozdzialu>0)or(poziom_znakowy_rozdzialu<0)))then
local function Poziom_dodatni_lub_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
elseif(czy_sredniki)then
return true;
end;
return false;
end);
end;
local function czy_inaczej_numeruj_rozdzial_dodatni()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
local function czy_inaczej_numeruj_rozdzial_ujemny()
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],nil,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
end);
end;
if((poziom_znakowy_rozdzialu>0)and((czy_inaczej_numeruj_rozdzial_dodatni())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_1={};end;
table.insert(tab_poziomowo_1,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
------
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,HNumerPoziomowNaglowkow,poziom_naglowka_bez_poprawki,1,});
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
spis_tresci=false;
-----
tab_numer={};
elseif((poziom_znakowy_rozdzialu<0)and((czy_inaczej_numeruj_rozdzial_ujemny())or(Poziom_dodatni_lub_ujemny())))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
if(not tab_poziomowo_1)then tab_poziomowo_2={};end;
table.insert(tab_poziomowo_2,{tab_poziomowo,poziom_naglowka_bez_poprawki,});
----
tab_poziomowo={};
tab_numer_zapasowe=tab_numer;
-----
if(not tab_numer_baza_spis_tresci)then tab_numer_baza_spis_tresci={};end;
table.insert(tab_numer_baza_spis_tresci,{tab_numer,HNumerPoziomow,nil,poziom_naglowka_bez_poprawki,-1,});
spis_tresci=false;
-----
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer={};
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
elseif(((not czy_jest_teraz_spis_tresci)and(not czy_rozdzial_spisu)and(((not pierwszy_dodatni_naglowek)and(poziom_znakowy_rozdzialu>0))
or(((not pierwszy_ujemny_naglowek)or((prawdziwy_poziom_rozdzialu_poprz)and(prawdziwy_poziom_rozdzialu_poprz>0)))and(poziom_znakowy_rozdzialu<0))))
and(not CzyJestONumerzeMniejszymLubRownymPoziomieNizAktualnyRozdzial()))and((not czy_pierwszy_nilowy_rozdzial)or((#tab_numer~=1)or(tab_numer[1]==1)))then
glowny_spis_tresci_lub_rozdzial_ksiazki=true;
if(poziom_rozdzialu>0)then
if(poziom_znakowy_rozdzialu>0)then
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
HNumerPoziomowNaglowkow_2=HNumerPoziomowNaglowkow;
HNumerPoziomowNaglowkow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
tab_numer_zapasowe=tab_numer;
tab_numer_3=tab_numer;
tab_numer={};
HNumerPoziomow_3=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
pierwszy_dodatni_naglowek=true;
poziom_pierwszego_dodatniego_naglowka=poziom_rozdzialu;
glowny_dodatni_rozdzial=true;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
----
tab_numer_zapasowe=tab_numer;
tab_numer_4=tab_numer;
tab_numer=parametry_modul["KopiujTabelęElementów"](tab_numer);
tab_numer[#tab_numer]=nil;
HNumerPoziomow_4=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
if(poprz_poziom_rozdzialu_lub_artykulu)then
numer_rozdzialu=HNumerPoziomow(poprz_poziom_rozdzialu_lub_artykulu,#tab_numer);
end;
pierwszy_ujemny_naglowek=true;
poprz_ujemnego_rozdzialu_dodatniego_rozdzialu=(m>1) and prawdziwy_poziom_rozdzialu_poprz or false;
poziom_pierwszego_ujemnego_naglowka=poziom_rozdzialu;
glowny_ujemny_rozdzial=true;
end;
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
else
local wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki=DodajNaSamPoczatek();
if((not parametry_modul.TypeBoolean(wartosc))and(wartosc))then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
----
if(wartosc)then
else
if(zbieraj_dane)then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
zbieraj_dane=false;
end;
end;
end;
-- end;
zbieraj_dane=true;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_rozdzialu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_naglowka;
poprz_numer_rozdzialu_lub_artykulu=numer_rozdzialu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_naglowka_bez_poprawki;
prawdziwy_poziom_rozdzialu_poprz=prawdziwy_poziom_rozdzialu;
-----
if(((not czy_rozdzial_spisu))and((m>1)or((m==1)and(not czy_pierwszy_nilowy_rozdzial))))then
if(prawdziwy_poziom_rozdzialu>0)then
pierwszy_dodatni_naglowek=true;
pierwszy_ujemny_naglowek=nil;
else
pierwszy_ujemny_naglowek=true;
pierwszy_dodatni_naglowek=true;
end;
end;
----
czy_ostatni_rozdzial_jest_centrowany=((poziom_znakowy_rozdzialu>0)and(czy_rozdzial_centrowany and true or nil) or ((poziom_znakowy_rozdzialu<=0)and czy_ostatni_rozdzial_jest_centrowany or nil));
else
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,"",tab_numer,{},czy_nienilowy_rozdzial,nil,nil,nil,artykul_spisu,nazwa_spisu,numer_spisu,tab_lista_artykulow_w_ksiazce,glowny_spis_tresci_lub_rozdzial_ksiazki);
if(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if((tab_lista[2])and(parametry_modul["CzySąElementyNumerowaneTablicy"](tab_lista[2])))then
local HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
local czy_dwukropek_artykulu=nil;
local stare_HNumerArtykulu=nil;
local stare_HNumerPoziomu=nil;
local czy_tytul_rozdzial=nil;
local czy_ma_elementy=nil;
ostatni_poczatek_artykulu=nil;
local czy_zera=nil;
local ile_w_rozdziale=nil;
local poprz_poziom_artykulu_bez_b=nil;
local k=1;
-----
local czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
local artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
local czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
-----
local numer_poprz_w_rozdziale=nil;
local poczatek_poprz=nil;
local id_poprz=nil;
local tab_poprzedni_artykul_w_bazie=nil;
local odejmnij_od_dwukropka_w_rozdziale=0;
-----
local czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
-----
local poziom_zerowego_artykulu=0;
local staly_poziom_rozdzialu_z_artykulami=0;
local nilowanie_poprzedniego_rejestru_tab_poziomowo=nil;
local czy_w_podreczniku_poprz=nil;
-----
local stare_HNumerPoziomu_poza_rozdzialem=nil;
local ile_w_rozdziale_licznik=1;
local staly_dodatek_rozdzialu_temp=0;
local staly_dodatek_rozdzialu_roz=staly_dodatek_rozdzialu;
local staly_dodatek_artykulu=0;
local ostatni_artykul_w_rozdziale=nil;
local tab_numer_w_rozdziale=nil;
local podrozdzial_spisu=nil;
local dodatek_poprz=nil;
-----
for p,artykul_w_bazie in ipairs(tab_lista[2])do
local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie[1]);
local artykul=czy_table_baza_artykulu and artykul_w_bazie[1][1] or artykul_w_bazie[1];
local nazwa=czy_table_baza_artykulu and artykul_w_bazie[1][2] or nil;
local Przekierowanie=function(przekierowanie)
return (((parametry_modul.TypeString(przekierowanie))and(przekierowanie))or(parametry_modul.TypeTable(przekierowanie)and(((przekierowanie[1])and((przekierowanie[2])or(przekierowanie[3])))or(przekierowanie[1]))and(przekierowanie[1]..(przekierowanie[2] and ("?"..(przekierowanie[2] or "")) or "")..(przekierowanie[3] and ("#"..(przekierowanie[3] or "")) or ""))));
end;
local czy_w_podreczniku=artykul_w_bazie[5];
local czy_inna_ksiazka;
if(czy_table_baza_artykulu)then
local czy_table_dane=parametry_modul.TypeTable(artykul_w_bazie[1][4]);
if(czy_table_dane)then
czy_inna_ksiazka=artykul_w_bazie[1][4][5];
end;
end;
local czy_url=czy_table_baza_artykulu and artykul_w_bazie[1][9] or nil;
local przekierowanie=(czy_w_podreczniku) and (czy_table_baza_artykulu and ((not artykul_w_bazie[1][4])and(not artykul_w_bazie[1][7]) and Przekierowanie(artykul_w_bazie[1][3]) or {Przekierowanie(artykul_w_bazie[1][3]),artykul_w_bazie[1][4],nil,nil,artykul_w_bazie[1][7],}) or nil) or (((not czy_w_podreczniku)and(czy_table_baza_artykulu)and(artykul_w_bazie[1][5])or(artykul_w_bazie[1][6])or(artykul_w_bazie[1][7])) and {nil,nil,artykul_w_bazie[1][5],artykul_w_bazie[1][6],artykul_w_bazie[1][7],} or nil);
---
local czy_dodane_lub_kolega=czy_table_baza_artykulu and artykul_w_bazie[1][8] or nil;
local czy_dodane=parametry_modul.TypeBoolean(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
local ile_dodano=parametry_modul.TypeNumber(czy_dodane_lub_kolega) and czy_dodane_lub_kolega or nil;
----
artykul=UzyskajArtykul(artykul);
----
if(naglowek or not tab_artykul[artykul])then
pierwszy_rowny_rozdzial=nil;
czy_ma_elementy=true;
if(not naglowek)then
tab_artykul[artykul]=true;
end;
local tab_artykul_w_bazie;
local w_rozdziale;
if(poziomowo)then
local poziom_artykulu=artykul_w_bazie[2][1]+(ile_dodano or 0);
local poziom_poczatku_artykulu=artykul_w_bazie[2][2];
----
local czy_poczatek_rozdzialu=(IleNajblizejDalejBezPoziomowo(p-1)>IleNajblizejDalejBezPoziomowo(0));
w_rozdziale=artykul_w_bazie[2][4];
poziom_artykulu=poziom_artykulu+(w_rozdziale and 1 or 0)+((((ile_dodano)and(ile_dodano>0))and(w_rozdziale))and 1 or 0);
if(w_rozdziale)then
poziom_artykulu,odejmnij_od_dwukropka_w_rozdziale,czy_w_trakcie_dwukropkowania_w_rozdziale=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz_w_rozdziale or 0,czy_w_trakcie_dwukropkowania_w_rozdziale,odejmnij_od_dwukropka_w_rozdziale);
numer_poprz_w_rozdziale=tonumber(tab_lista[2][p][2][1]);
else
poziom_artykulu,odejmnij_od_dwukropka,czy_w_trakcie_dwukropkowania=OdejmnijOdDwukropka(poziom_artykulu,poziom_poczatku_artykulu,numer_poprz or 0,czy_w_trakcie_dwukropkowania,odejmnij_od_dwukropka);
end;
----
local numeracja_artykulu=artykul_w_bazie[2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
local czy_rozdzial_z_poczatkiem_jedynki=nil;
if(w_rozdziale)then
if(not stare_HNumerPoziomu_poza_rozdzialem)then
stare_HNumerPoziomu_poza_rozdzialem=HNumerPoziomow;
HNumerPoziomow=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
tab_numer_w_rozdziale=tab_numer;
tab_numer=tab_numer_zapasowe or tab_numer;
end;
local function CzyRozdzialMaArtykulyNieWewnetrzNaglowka()
local czy_artykuly=nil;
return AnalizaArtykulowaLubRozdzialowa(tab_lista[2],false,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if(not w_rozdziale)then
czy_artykuly=true;
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end),czy_artykuly;
end;
local function CzyRozdzialMaRozdzialyNieWewnetrzNaglowka()
return AnalizaArtykulowaLubRozdzialowa(tab_lista_artykulow_w_ksiazce,true,function(poziom_artykulu,poziom_naglowka,poziom_znakowy_rozdzialu_artykulu,w_rozdziale,ostatni_rozdzial_centrowany,poziom_srednikowego_naglowka,poziom_zerowego_naglowka,poziom_artykulu_zerowy)
if((poziom_znakowy_rozdzialu<0)and(poziom_znakowy_rozdzialu_artykulu>0))then
return false;
else
if(poziom_artykulu>poziom_naglowka)then
return true;
end;
return false;
end;
end);
end;
if(not ile_w_rozdziale)then
ile_w_rozdziale=IleArtykolowWRozdzialeWewnatrzNaglowka(tab_lista,false);
end;
if(ile_w_rozdziale_licznik==ile_w_rozdziale)then
czy_w_trakcie_dwukropkowania_w_rozdziale=nil;
odejmnij_od_dwukropka_w_rozdziale=0;
numer_poprz_w_rozdziale=nil;
ostatni_artykul_w_rozdziale=true;
end;
ile_w_rozdziale_licznik=ile_w_rozdziale_licznik+1;
if((poziom_znakowy_rozdzialu>0)and(ile_w_rozdziale==1))then
local wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,{},nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
czy_w_rozdziale_rejestrowane_osobno_artykuly=true;
elseif(not artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)then
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=true;
if(parametry_modul.TypeNil(czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka))then
local czy_ma_artykuly;
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka,czy_ma_artykuly=CzyRozdzialMaArtykulyNieWewnetrzNaglowka();
if((not czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not czy_ma_artykuly))then
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=CzyRozdzialMaRozdzialyNieWewnetrzNaglowka();
end;
end;
if((czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka)and(not glowny_ujemny_rozdzial))then
tab_numer[#tab_numer+1]=0;
end;
end;
else
if((artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka)or(czy_w_rozdziale_rejestrowane_osobno_artykuly))then
-----
tab_poziomowo={};
HNumerPoziomu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
HNumerArtykulu=stronicowyparser_potrzebne_modul.LiczonyHNumer();
-----
artykuly_w_rozdziale_nie_tylko_wewnatrz_naglowka=nil;
czy_w_rozdziale_rejestrowane_osobno_artykuly=nil;
----
k=1;
tab_poprzedni_artykul_w_bazie=nil;
end;
---
if(not czy_zera)then
if((((not czy_nienilowy_rozdzial)and(m==1))or((czy_nienilowy_rozdzial)and(m>=1)))and(k==1))then
local numer=tab_lista[2][p][2][1];
local poczatek=tab_lista[2][p][2][2];
if(((not czy_nienilowy_rozdzial)and(mw.ustring.match(poczatek,"^:")))or(numer+poziom_numeracji_artykulu==0))then
for s=p+1,#tab_lista[2],1 do
if(CzyWliczacBezPoziomowo(p,s))then
local numer=tab_lista[2][s][2][1];
local poczatek=tab_lista[2][s][2][2];
local numeracja_artykulu=tab_lista[2][s][2][3];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if((mw.ustring.match(poczatek,"^#"))or(numer+poziom_numeracji_artykulu>0))then
if(((#tab_numer>0)and(tab_numer[#tab_numer]~=0))or(#tab_numer==0))then
table.insert(tab_numer,0);
end;
tab_poziomowo={};
czy_zera=true;
break;
elseif((not mw.ustring.match(poczatek,"^:"))and(not(#poczatek==0)))then
break;
end;
end;
end;
end;
end;
else
local numer=tonumber(tab_lista[2][p][2][1]);
local poczatek=tab_lista[2][p][2][2];
local id=tab_lista[2][p][4];
local function DodajUsunNumerek(jedno,drugie,trzecie)
if((not jedno)and(not drugie)and(not trzecie))then return;end;
if((#tab_numer>(HNumerPoziomowNaglowkow(0) or 0)+poziom_zerowego_naglowka+poziom_srednikowego_naglowka))then
czy_zera=false;
tab_poziomowo={};
table.remove(tab_numer,#tab_numer);
if(#tab_numer>0)then
tab_numer[#tab_numer]=(tab_numer[#tab_numer] or 0)+1;
end;
czy_rozdzial_z_poczatkiem_jedynki=true;
end;
end;
DodajUsunNumerek(((mw.ustring.match(poczatek_poprz,"^:"))and(mw.ustring.match(poczatek,"^#"))),((#poczatek_poprz==0)and(not id_poprz)and(#poczatek>0)and(not id)),((#poczatek_poprz+poprz_numeracji_rozdzialu_lub_artykulu==0)and(numer+poziom_numeracji_artykulu>0)));
end;
if((not czy_zera)
and((k==1)and(not w_rozdziale)and(tab_lista_artykulow_w_ksiazce[m+1])
and(((m==1)and(not czy_nienilowy_rozdzial)and(((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)or(tab_lista_artykulow_w_ksiazce[m+1][1][2][1]>0)))
or((m>1)and(czy_nienilowy_rozdzial)and((artykul_w_bazie[2][1]+poziom_numeracji_artykulu)==0)))
))then
local czy_sa_jakies_artykuly_niezerowe=false;local ile=0;
local poziom_zerowy=artykul_w_bazie[2][1]+poziom_numeracji_artykulu;
if(poziom_zerowy)then
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>p)then
local poziom_artykulu=artykul_w_bazie[2][1];
local poziom_numeracji_artykulu=PoziomNumeracji(numeracja_artykulu);
if(poziom_artykulu+poziom_numeracji_artykulu>0)then
czy_sa_jakies_artykuly_niezerowe=true;
break;
end;
end;
end;
for h,artykul_w_bazie in ipairs(tab_lista[2])do
if(h>=p)then
ile=ile+1;
end;
end;
end;
if(((poziom_zerowy==0)and(czy_sa_jakies_artykuly_niezerowe)or(not czy_nienilowy_rozdzial))or(poziom_zerowy>0))then
if(ile<=5)then
table.insert(tab_numer,0);
else
nilowanie_poprzedniego_rejestru_tab_poziomowo=true;
end
end;
end;
end;
ostatni_poczatek_artykulu=poziom_poczatku_artykulu;
-----
local poziom_zerowego_artykulu_poprz=poziom_zerowego_artykulu;
poziom_artykulu,poziom_zerowego_artykulu=ToNumberPoziomArtykulu(poziom_artykulu);
local poziom_zerowego_artykulu_aktualny=poziom_artykulu;
poziom_zerowego_artykulu=ZerowyArtykul(tab_lista[2],p,w_rozdziale,poziom_zerowego_artykulu,poziom_zerowego_naglowka,poziom_zerowego_artykulu_poprz);
----
local czy_sredniki=mw.ustring.match(poziom_poczatku_artykulu,"^(;+)");
if(czy_sredniki)then
poziom_zerowego_naglowka=0;
if(glowny_ujemny_rozdzial)then
HNumerPoziomow=HNumerPoziomow_4;
HNumerPoziomow_4=nil;
tab_numer=tab_numer_4;
poziom_pierwszego_ujemnego_naglowka=nil;
glowny_ujemny_rozdzial=nil;
----
end;
KoniecSpisuTresci(poziom_naglowka_bez_poprawki,-1,true);
end;
----
local poziom_czysty_artykulu=poziom_artykulu;
----
local __poziom_poczatku_rozdzialu= (not czy_poczatek_rozdzialu) and poziom_poczatku_rozdzialu or poczatek_poprz;
local __poziom_rozdzialu=(not czy_poczatek_rozdzialu) and poziom_rozdzialu or poziom_artykulu;
poziom_artykulu,staly_poziom_rozdzialu_z_artykulami=PlusIlesDoPoziomuArtykulu(poziom_artykulu,poziom_poczatku_artykulu,__poziom_rozdzialu,__poziom_poczatku_rozdzialu,staly_poziom_rozdzialu_z_artykulami);
----
poziom_zerowego_naglowka=czy_sredniki and 0 or poziom_zerowego_naglowka;
poziom_zerowego_artykulu=czy_sredniki and 0 or poziom_zerowego_artykulu;
----
poziom_srednikowego_naglowka=czy_sredniki and 0 or poziom_srednikowego_naglowka;
----
poziom_zerowego_naglowka=((ostatni_artykul_w_rozdziale)and(not w_rozdziale)and(poziom_zerowego_naglowka>0)and(poziom_zerowego_artykulu_aktualny==0)) and (poziom_zerowego_naglowka-1) or poziom_zerowego_naglowka;
if((ostatni_artykul_w_rozdziale)and(not w_rozdziale))then
ostatni_artykul_w_rozdziale=nil;
end;
----
if((poziom_znakowy_rozdzialu<0)and(rozdzial==""))then
poziom_artykulu=poziom_naglowka+poziom_artykulu+poziom_zerowego_artykulu+(poziom_spisu_tresci_dodatek or 0);
else
poziom_artykulu=poziom_artykulu+poziom_zerowego_artykulu+(ostatni_rozdzial_centrowany or 0)+(ostatni_rozdzial_dodatni or 0)+poziom_zerowego_naglowka+((not czy_sredniki)and poziom_srednikowego_naglowka or 0)+(poziom_spisu_tresci_dodatek or 0);
end;
----
local poziom_podany_artykulu_bez_numeracji=poziom_artykulu;
poziom_artykulu=poziom_artykulu+(poziom_numeracji_artykulu or 0);
----
local __poprz_poziom_rozdzialu_lub_artykulu=((poziom_znakowy_rozdzialu>0) and poprz_poziom_rozdzialu_lub_artykulu or poziom_naglowka);
local __poprz_czysty_poziom_rozdzialu_lub_artykulu=(poziom_znakowy_rozdzialu>0) and poprz_czysty_poziom_rozdzialu_lub_artykulu or poziom_numeracji_rozdzialu;
if(not w_rozdziale)then
if(k==1)then
staly_dodatek_rozdzialu_temp=staly_dodatek_rozdzialu_roz;
end;
end;
poziom_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]=PoziomNumerNaglowka(poziom_podany_artykulu_bez_numeracji,poziom_numeracji_artykulu,__poprz_poziom_rozdzialu_lub_artykulu,__poprz_czysty_poziom_rozdzialu_lub_artykulu,staly_dodatek_rozdzialu_temp--[[staly_dodatek]]);
if(not w_rozdziale)then staly_dodatek_rozdzialu=staly_dodatek_rozdzialu_temp;end;
----
local prefix_poziom_artykulu=poziom_artykulu;
local function WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu)
local b=0;
local tab_artykul_w_bazie=mw.text.split(artykul,"/");
if((tab_poprzedni_artykul_w_bazie)and((czy_w_podreczniku_poprz)and(czy_w_podreczniku)))then
if((#tab_artykul_w_bazie>1)or(#tab_poprzedni_artykul_w_bazie>1))then
for c=1,#tab_artykul_w_bazie,1 do
local podstrona_artykul=tab_artykul_w_bazie[c];
local podstrona_poprzedni_artykul=tab_poprzedni_artykul_w_bazie[c];
if(podstrona_artykul==podstrona_poprzedni_artykul)then
b=b+1;
else
break;
end;
end;
end;
else
if(k==1)then
if(#tab_artykul_w_bazie>1)then
local podrozdzial_artykulu=tab_artykul_w_bazie[1];
podrozdzial_artykulu=parametry_modul["Odstępy"]{[1]=podrozdzial_artykulu,[2]="tak",};
podrozdzial_artykulu=mw.getContentLanguage():ucfirst(podrozdzial_artykulu);
if(not podrozdzial_spisu)then
podrozdzial_spisu=parametry_modul["Odstępy"]{[1]=rozdzial,[2]="tak",};
podrozdzial_spisu=mw.getContentLanguage():ucfirst(podrozdzial_spisu);
end;
local czy_z_rozdzialem=(podrozdzial_artykulu==podrozdzial_spisu);
if(czy_z_rozdzialem)then b=1;end;
end;
end
end;
if((#tab_artykul_w_bazie==b)and(#tab_poprzedni_artykul_w_bazie==b))then b=b-1;end;
if(not poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
if(poziom_artykulu==poprz_poziom_artykulu_bez_b)then
if((k>=2)and(czy_w_podreczniku)and(staly_dodatek_artykulu[2])and(staly_dodatek_artykulu[1]==0)and(#tab_poprzedni_artykul_w_bazie>1)and(b>0)and(#tab_poprzedni_artykul_w_bazie>=b+1))then
staly_dodatek_artykulu[1]=b;
staly_dodatek_artykulu[2]=false;
end;
if(((k==2)or(staly_dodatek_artykulu[3]))and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
elseif((k>2)and(czy_w_podreczniku)and((staly_dodatek_artykulu[3] or 0)+2==k)and(b>0))then
staly_dodatek_artykulu[3]=nil;
staly_dodatek_artykulu[1]=b;
end;
local poziom_numeracji=b-(staly_dodatek_artykulu[1] or 0);
return ((czy_w_podreczniku)and ((poziom_numeracji>=0)and poziom_numeracji or 0)or(dodatek_poprz)),staly_dodatek_artykulu,tab_artykul_w_bazie;
elseif(poziom_artykulu~=poprz_poziom_artykulu_bez_b)then
staly_dodatek_artykulu={b,true};
if((k==2)and(not czy_w_podreczniku))then
staly_dodatek_artykulu[3]=k;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
return 0,staly_dodatek_artykulu,tab_artykul_w_bazie;
end;
-----
local dodatek;
dodatek,staly_dodatek_artykulu,tab_artykul_w_bazie=WielopoziomowyAdres(poziom_artykulu,poprz_poziom_artykulu_bez_b,tab_poprzedni_artykul_w_bazie,staly_dodatek_artykulu);
poprz_poziom_artykulu_bez_b=poziom_artykulu;
local numer_poziomu=HNumerPoziomow(poziom_artykulu);
-----
if(not w_rozdziale)then
if(poziom_znakowy_rozdzialu<0)then
if(poziom_artykulu<=(poziom_pierwszego_ujemnego_naglowka or 0))then
tab_poziomowo=tab_numer_4;
tab_numer={};
HNumerPoziomu=HNumerPoziomow_4;
HNumerArtykulu(poziom_artykulu,HNumerPoziomu(0));
else
local numer=numer_rozdzialu-numer_poziomu;
if(numer>=0)then
local tab_numer_s=tab_numer;
local tab_poziomowo_s=tab_poziomowo;
tab_numer={};tab_poziomowo={};
if(#tab_numer_s>=numer_poziomu-1)then
for i=1,numer_poziomu-1,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=numer_poziomu,#tab_numer_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_numer_s[i];
end;
for i=1,#tab_poziomowo_s,1 do
tab_poziomowo[i+#tab_numer_s-numer_poziomu+1]=tab_poziomowo_s[i];
end;
else
for i=1,#tab_numer_s,1 do
tab_numer[i]=tab_numer_s[i];
end;
for i=1,numer_poziomu-1,1 do
tab_numer[i+#tab_numer_s]=tab_poziomowo_s[i];
end;
for i=numer_poziomu,#tab_poziomowo_s,1 do
tab_poziomowo[i-numer_poziomu+1]=tab_poziomowo_s[i];
end;
end;
end;
end;
end;
end;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
if((not w_rozdziale)and(poziomowo)and(poziom_znakowy_rozdzialu<0))then
if((numer_rozdzialu>=numer_poziomu)and(numer_poziomu>=1))then
HNumerPoziomu(poziom_artykulu,1);
HNumerArtykulu(poziom_artykulu,1);
end;
end;
local stala=poziom_artykulu;
if(czy_rozdzial_z_poczatkiem_jedynki)then
HNumerPoziomu(stala,1);
HNumerArtykulu(stala,1);
end;
local numer_poziomu=HNumerPoziomu(stala);
poziom_artykulu=stala+dodatek;
local numer=HNumerArtykulu(poziom_artykulu);
local roznica=numer_poziomu-numer;
if(roznica>0)then
numer=HNumerArtykulu(poziom_artykulu,numer_poziomu);
end;
if(#tab_poziomowo<numer)then
for i=#tab_poziomowo+1,numer,1 do
table.insert(tab_poziomowo,1);
end;
else
if(#tab_poziomowo>numer)then
for i=#tab_poziomowo,numer+1,-1 do
table.remove(tab_poziomowo,i);
end;
end;
tab_poziomowo[#tab_poziomowo]=(tab_poziomowo[#tab_poziomowo] or 0)+1;
end;
end;
----
tab_poprzedni_artykul_w_bazie=tab_artykul_w_bazie;
poprz_numeracji_rozdzialu_lub_artykulu=poziom_numeracji_artykulu;
poprz_poziom_rozdzialu_lub_artykulu=poziom_artykulu;
poprz_czysty_poziom_rozdzialu_lub_artykulu=poziom_podany_artykulu_bez_numeracji;
poziom_srednikowego_naglowka=czy_sredniki and poziom_czysty_artykulu or poziom_srednikowego_naglowka;
numer_poprz=(not w_rozdziale)and tonumber(tab_lista[2][p][2][1]) or ((w_rozdziale)and numer_poprz or nil);
poprz_numer_rozdzialu_lub_artykulu=numer_poziomu;
poczatek_poprz=tab_lista[2][p][2][2];
id_poprz=tab_lista[2][p][4];
czy_w_podreczniku_poprz=czy_w_podreczniku;
dodatek_poprz=dodatek;
end;
local wartosc;
if(not czy_w_rozdziale_rejestrowane_osobno_artykuly)then
wartosc=__FUNKCJA(poziomowo,i,ktory,pierwszy_parametr_szablonu,rozdzial,artykul,tab_numer,tab_poziomowo,nil,tab_lista[2][p][5],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(wartosc)then return wartosc,glowny_spis_tresci_lub_rozdzial_ksiazki;end;
end;
if(not poziomowo)then
i=i+1;
else
if((ostatni_artykul_w_rozdziale)and(w_rozdziale))then
HNumerPoziomow=stare_HNumerPoziomu_poza_rozdzialem;
stare_HNumerPoziomu_poza_rozdzialem=nil;
tab_numer=tab_numer_w_rozdziale;
poprzedni_tab_poziomowo=nil;
-----
poziom_zerowego_artykulu=0;
-----
czy_sa_artykuly_lub_rozdzialy_w_rozdziale_nie_wewnatrz_naglowka=nil;
if((#tab_numer>0)and(tab_numer[#tab_numer]==0))then
tab_numer[#tab_numer]=nil;
end;
else
if(not nilowanie_poprzedniego_rejestru_tab_poziomowo)then
poprzedni_tab_poziomowo=tab_poziomowo;
else
poprzedni_tab_poziomowo={1,};
end;
end;
end;
k=k+1;
end;
end;
if(not czy_ma_elementy)then
poprzedni_tab_poziomowo=nil;
end;
else
poprzedni_tab_poziomowo=nil;
end;
end;
end;
return;
end;
return p;
393k3v0sjfx4cmi4ktacr59w6md8yv9
Moduł:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne
828
63947
551845
2026-08-15T22:12:13Z
Persino
2851
Utworzono nową stronę „local p={}; local function ZamienNumerArtykuluNaTabele(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 stronico…”
551845
Scribunto
text/plain
local p={};
local function ZamienNumerArtykuluNaTabele(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=ZamienNumerArtykuluNaTabele(numer_artykulu);
if(#tab_numer_artykulu<1)then return tab_numer_artykulu;end;
local tab_numer_spisu=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;
return p;
49lt4sz5r5fmhlc84460cp8e4v45trt
551846
551845
2026-08-15T22:17:22Z
Persino
2851
551846
Scribunto
text/plain
local p={};
local function ZamienNumerArtykuluNaTabele(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;
return p;
qhrbyy5qm040ej059knj8nqvwsmhb9t
551847
551846
2026-08-15T22:20:02Z
Persino
2851
551847
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;
return p;
9g52ri1vhxg6muy617jrwqtph242uas
551849
551847
2026-08-15T22:22:08Z
Persino
2851
Zabezpieczono stronę „[[Moduł:StronicowyParser/NumerLubNazwaArtykułówKsiążek/Pomocne]]” ([Edytowanie=Dozwolone tylko dla administratorów] (na czas nieokreślony) [Przenoszenie=Dozwolone tylko dla administratorów] (na czas nieokreślony))
551847
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;
return p;
9g52ri1vhxg6muy617jrwqtph242uas
Śpiewnik/Bracia, nuż do koła
0
63948
551927
2026-08-16T07:51:38Z
Ashaio
4702
nowa piosenka
551927
wikitext
text/x-wiki
{{T|Śpiewnik/NawigacjaOpis}}
== Muzyka ==
'''Autor:''' nieznany
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
<score raw="1" vorbis="1">
\version "2.19.0"
\header{
title = "Bracia, nuż do koła"
poet = "Słowa: Konstanty Damrot"
composer = "Muzyka: autor nieznany"
arranger = "Opracowanie: Leon Kociałkowski"
tagline = ""
}
melodia = <<
\new Staff \with { midiInstrument = "harmonica" }
\relative g'{
\clef treble
\key c \major
\time 3/4
\tempo 4 = 110
\autoBeamOff
g8^\mf g e4.( g8) |
g8 g f4.( d8) |
g4\< a b\! |
c8\> b16[( a]) g2\! |
g8 g e4.( g8) |
g8 g f4.( d8) |
g4\< a b |
c2\! r4 |
\tempo 4 = 120
g8^\f g g g a g |
f4 f d |
b' b g |
c4 b8[( a]) g4 |
g8 g g g a g |
f4 f d |
b' b g |
c2 r4 |
\tempo 4 = 130
\repeat volta 2 {
g8 g g g a g |
f4 f d |
b' b g |
c e c |
g8 g g g a g |
f4 f d |
b' b g |
c2 r4 |
\tempo 4 = 140
}
}
\addlyrics{ \small {
Bra -- cia, nuż do ko -- ła,
gdzie nas ra -- dość wo -- ła;
do wi -- na, do pi -- wa
sia -- daj -- my wraz!
Nie -- chaj zgra -- ja wro -- gów zło -- śli -- wa
z_gnie -- wu się u -- no -- si,
śmie -- lej ra -- dość na -- szą
niech gło -- si dziś ka -- żdy z_nas.
Ne pój -- de -- my do dom aż ra -- no,
aż bu -- de swi -- ta -- no,
Ne pój -- de -- my do dom aż ra -- no,
aż bu -- de den!
} }
>>
\score{
\melodia
\layout{}
}
\score{
\unfoldRepeats
\melodia
\midi{}
}
</score>
'''Źródło:''' Leon Kociałkowski, ''[https://polona.pl/item-view/5e9940a4-b4c0-48f4-83e9-9dfd439f6e26?page=23 Lutnia polska : zbiór pieśni i piosenek obyczajowych i okolicznościowych : miłosnych, aryi i dumek, piosenek wiejskich : mazurów, krakowiaków, kujawiaków, obertasów, piosenek dla rzemieślników, weselnych : i różnej innej treści z melodyami. Tomik 1]''. Poznań, 1885. S.nbsp;22–23.
== Tekst ==
'''Autor:''' Konstanty Damrot (1841–1895)
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
{{Kolumny|3|
<poem>
1. Bracia, nuż do koła,
Gdzie radość nas woła,
Do wina, do piwa
Siadajmy wraz!
Niechaj zgraja wrogów złośliwa
Z gniewu się unosi,
Śmielej radość naszą niech głosi
Dziś każdy z nas.
Ne pójdemy do dom aż rano,
Aż bude switano,
Ne pójdemy do dom aż rano,
Aż bude deń!
2. Zawsze niech przy szklance
I przy pogadance,
W zgodzie, wesołości,
Brzmi polski śpiew;
Niech się szarpie, kto chce, z złości,
Nas zmięszać nie zdoła;
Przyjaźń, wino, pieśń wesoła,
Ogłuszą gniew.
Ne pójdemy do dom aż rano,
Aż bude switano,
Ne pójdemy do dom aż rano,
Aż bude deń!
3. Co wino — nie woda,
Gdzie przyjaźń — tam zgoda,
Kto z nami — niech pije
I poda dłoń!
Niechaj drogi Górny Szląsk żyje
I język ojczysty!
Taki zawsze śpiew nasz ognisty,
Tu na to dłoń!
Ne pójdemy do dom aż rano,
Aż bude switano,
Ne pójdemy do dom aż rano,
Aż bude deń!
</poem>
}}
'''Źródło:''' Leon Kociałkowski, ''[https://polona.pl/item-view/5e9940a4-b4c0-48f4-83e9-9dfd439f6e26?page=23 Lutnia polska : zbiór pieśni i piosenek obyczajowych i okolicznościowych : miłosnych, aryi i dumek, piosenek wiejskich : mazurów, krakowiaków, kujawiaków, obertasów, piosenek dla rzemieślników, weselnych : i różnej innej treści z melodyami. Tomik 1]''. Poznań, 1885. S.nbsp;23–24.
== Zobacz też ==
{{Wikiźródła|Pieśń_(Bracia,_nuż_do_koła...)|Pieśń (Bracia, nuż do koła...)}}
* ''[https://staremelodie.pl/piosenka/4855/Nie%20p%C3%B3jd%C4%99%20do%20domu Nie pójdę do domu]'' w serwisie ''[Stare Melodie]''
6ppviofmy6kj3jheebg8r0zeu2oaodh
551928
551927
2026-08-16T07:53:17Z
Ashaio
4702
dr.
551928
wikitext
text/x-wiki
{{T|Śpiewnik/NawigacjaOpis}}
== Muzyka ==
'''Autor:''' nieznany
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
<score raw="1" vorbis="1">
\version "2.19.0"
\header{
title = "Bracia, nuż do koła"
poet = "Słowa: Konstanty Damrot"
composer = "Muzyka: autor nieznany"
arranger = "Opracowanie: Leon Kociałkowski"
tagline = ""
}
melodia = <<
\new Staff \with { midiInstrument = "harmonica" }
\relative g'{
\clef treble
\key c \major
\time 3/4
\tempo 4 = 110
\autoBeamOff
g8^\mf g e4.( g8) |
g8 g f4.( d8) |
g4\< a b\! |
c8\> b16[( a]) g2\! |
g8 g e4.( g8) |
g8 g f4.( d8) |
g4\< a b |
c2\! r4 |
\tempo 4 = 120
g8^\f g g g a g |
f4 f d |
b' b g |
c4 b8[( a]) g4 |
g8 g g g a g |
f4 f d |
b' b g |
c2 r4 |
\tempo 4 = 130
\repeat volta 2 {
g8 g g g a g |
f4 f d |
b' b g |
c e c |
g8 g g g a g |
f4 f d |
b' b g |
c2 r4 |
\tempo 4 = 140
}
}
\addlyrics{ \small {
Bra -- cia, nuż do ko -- ła,
gdzie nas ra -- dość wo -- ła;
do wi -- na, do pi -- wa
sia -- daj -- my wraz!
Nie -- chaj zgra -- ja wro -- gów zło -- śli -- wa
z_gnie -- wu się u -- no -- si,
śmie -- lej ra -- dość na -- szą
niech gło -- si dziś ka -- żdy z_nas.
Ne pój -- de -- my do dom aż ra -- no,
aż bu -- de swi -- ta -- no,
Ne pój -- de -- my do dom aż ra -- no,
aż bu -- de den!
} }
>>
\score{
\melodia
\layout{}
}
\score{
\unfoldRepeats
\melodia
\midi{}
}
</score>
'''Źródło:''' Leon Kociałkowski, ''[https://polona.pl/item-view/5e9940a4-b4c0-48f4-83e9-9dfd439f6e26?page=23 Lutnia polska : zbiór pieśni i piosenek obyczajowych i okolicznościowych : miłosnych, aryi i dumek, piosenek wiejskich : mazurów, krakowiaków, kujawiaków, obertasów, piosenek dla rzemieślników, weselnych : i różnej innej treści z melodyami. Tomik 1]''. Poznań, 1885. S.nbsp;22–23.
== Tekst ==
'''Autor:''' Konstanty Damrot (1841–1895)
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
{{Kolumny|3|
<poem>
1. Bracia, nuż do koła,
Gdzie radość nas woła,
Do wina, do piwa
Siadajmy wraz!
Niechaj zgraja wrogów złośliwa
Z gniewu się unosi,
Śmielej radość naszą niech głosi
Dziś każdy z nas.
Ne pójdemy do dom aż rano,
Aż bude switano,
Ne pójdemy do dom aż rano,
Aż bude deń!
2. Zawsze niech przy szklance
I przy pogadance,
W zgodzie, wesołości,
Brzmi polski śpiew;
Niech się szarpie, kto chce, z złości,
Nas zmięszać nie zdoła;
Przyjaźń, wino, pieśń wesoła,
Ogłuszą gniew.
Ne pójdemy do dom aż rano,
Aż bude switano,
Ne pójdemy do dom aż rano,
Aż bude deń!
3. Co wino — nie woda,
Gdzie przyjaźń — tam zgoda,
Kto z nami — niech pije
I poda dłoń!
Niechaj drogi Górny Szląsk żyje
I język ojczysty!
Taki zawsze śpiew nasz ognisty,
Tu na to dłoń!
Ne pójdemy do dom aż rano,
Aż bude switano,
Ne pójdemy do dom aż rano,
Aż bude deń!
</poem>
}}
'''Źródło:''' Leon Kociałkowski, ''[https://polona.pl/item-view/5e9940a4-b4c0-48f4-83e9-9dfd439f6e26?page=23 Lutnia polska : zbiór pieśni i piosenek obyczajowych i okolicznościowych : miłosnych, aryi i dumek, piosenek wiejskich : mazurów, krakowiaków, kujawiaków, obertasów, piosenek dla rzemieślników, weselnych : i różnej innej treści z melodyami. Tomik 1]''. Poznań, 1885. S.nbsp;23–24.
== Zobacz też ==
{{Wikiźródła|Pieśń_(Bracia,_nuż_do_koła...)|Pieśń (Bracia, nuż do koła...)}}
* ''[https://staremelodie.pl/piosenka/4855/Nie%20p%C3%B3jd%C4%99%20do%20domu Nie pójdę do domu]'' w serwisie ''[https://staremelodie.pl/ Stare Melodie]''
tfxexsdti9jeb6mabsa2sb0lhosi4vf
Śpiewnik/Zgoda Sejmu to sprawiła
0
63949
551929
2026-08-16T08:46:18Z
Ashaio
4702
nowa pieśń
551929
wikitext
text/x-wiki
{{T|Śpiewnik/NawigacjaOpis}}
== Muzyka ==
'''Autor:''' nieznany (Aleksander Rodowski?)
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
<score raw="1" vorbis="1">
\version "2.19.0"
\header{
title = "Polonez Trzeciego Maja"
poet = "Słowa: autor nieznany (Franciszek D. Kniaźnin?)"
composer = "Muzyka: autor nieznany (Aleksander Rodowski?)"
arranger = "Opracowanie: Leon Kociałkowski"
tagline = ""
}
melodia = <<
\new Staff \relative f' {
\clef treble
\key f \major
\time 3/4
\tempo 4 = 100
\autoBeamOff
\partial 4 {e8 f} |
g4. a8 bes bes |
bes4. g8 c c |
c4. a8 d16[( c]) bes[( a]) |
a4 g
\repeat volta 2 {
f'8 f |
f4. c8 d d |
d4. bes8 a g |
d'4. c16[ bes]) a[( c]) bes[( g]) |
g4 f
}
s4 |
}
\addlyrics{ \small {
Zgo -- da Sej -- mu to spra -- wi -- ła,
że nam wol -- ność przy -- wró -- ci -- ła.
Wi -- wat! krzy -- czcie wszy -- stkie sta -- ny,
nie -- chaj ży -- je król ko -- cha -- ny!
Wi -- wat! krzy -- czcie wszy -- stkie sta -- ny,
nie -- chaj ży -- je Król ko -- cha -- ny!
} }
>>
\score{
\melodia
\layout{}
}
\score{
\unfoldRepeats
\melodia
\midi{}
}
</score>
'''Źródło:''' Leon Kociałkowski, ''[https://polona.pl/item-view/a88f7ab4-6c86-43d9-af42-24042b773dcf?page=66 Lutnia polska : zbiór pieśni i piosenek obyczajowych i okolicznościowych : miłosnych, aryi i dumek, piosenek wiejskich : mazurów, krakowiaków, kujawiaków, obertasów, piosenek dla rzemieślników, weselnych : i różnej innej treści z melodyami. Tomik 3]''. Poznań, 1885. S. 67.
== Tekst ==
'''Autor:''' nieznany (Franciszek D. Kniaźnin?)
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
{{Kolumny|3|
<poem>
1. Zgoda Seymu to sprawiła,
Że nam wolność przywróciła.
Wiwat! Krzyczcie wszystkie stany:
Niechay żyie Król kochany!
2. Taka iest narodu wola:
Za swych braci i za Króla
Obywatel każdy wszędzie
Życie swoie łożyć będzie
3. Wiwat Seym i naród cały!
Dziś nam Nieba żywot dały.
Wiwat! Krzyczcie wszystkie stany
Niechay żyie Król kochany!
</poem>
}}
'''Źródło:''' Julian Horoszkiewicz, ''[https://polona.pl/item-view/116f0461-0d99-41ef-bb1b-3f6bf8f6f84d?page=20 Echa minionych lat : Wiersze, pieśni z muzyką, marsze wojska polskiego z końca 18-go i początku 19-go wieku. Z. 1, Słowa, Z. 2, Nuty]''. Lwów, 1889. S. 13.
== Zobacz też ==
{{Wikiźródła|Polonez_Trzeciego_Maja|Polotez Trzeciego Maja}}
* ''[https://bibliotekapiosenki.pl/utwory/Polonez_trzeciego_maja_(Zgoda_sejmu_to_sprawila_) Polonez trzeciego maja Zgoda sejmu to sprawiła)]'' w serwisie ''[https://bibliotekapiosenki.pl/ Cyfrowa Biblioteka Polskiej Piosenki]''
d65md7ztt2qmaxxkrgszuw1uemjhnsn
Śpiewnik/Zgoda Sejmu to sprawiła/Tekst
0
63950
551930
2026-08-16T08:52:13Z
Ashaio
4702
dłuższa wersja tekstu pieśni
551930
wikitext
text/x-wiki
== Tekst ==
'''Autor:''' nieznany (Franciszek D. Kniaźnin?)
'''Opracowanie:''' Leon Kociałkowski (1850–1923)
{{Kolumny|2|
<poem>
1. Zgoda Sejmu to sprawiła,
Że nam wolność przywróciła.
Wiwat! Krzyczcie wszystkie stany:
Niechaj żyje Król kochany!
2. Taka jest narodu wola:
Za swych braci i za Króla
Obywatel każdy wszędzie
Życie swoje łożyć będzie.
3. Nuż w żupany, nuż w kontusze,
Bo chcąc dobrym być rodadkiem,
Nie dość jest mieć polską duszę,
Lecz się trzeba rozstać z frakiem.
4. Obcych krajów precz zwyczaje,
Fraki precz na tychże czele,
Wąs na twarzy niech zostaje,
Bierzmy pasy, karabele.
5. Nuż w kotusze, nuż w żupany,
Obcym strojem wzgardź rodaku;
Ten co gromił Bisurmany
Nie wystąpił w Wiedniu w fraku.
6. Niechaj się kto chce obrusza,
Niech się śmieje z méj figury,
Młodszy fraczek od kontusza,
Starsze wąsy od fryzury.
</poem>
}}
'''Źródło:''' Leon Kociałkowski, ''[https://polona.pl/item-view/a88f7ab4-6c86-43d9-af42-24042b773dcf?page=66 Lutnia polska : zbiór pieśni i piosenek obyczajowych i okolicznościowych : miłosnych, aryi i dumek, piosenek wiejskich : mazurów, krakowiaków, kujawiaków, obertasów, piosenek dla rzemieślników, weselnych : i różnej innej treści z melodyami. Tomik 3]''. Poznań, 1885. S. 67–68.
gat06vubko53vl11xm4bgdjloemd2hn
Szablon:Link FA/Wikibooks-pozycja
10
63951
551937
2026-08-16T10:46:38Z
Persino
2851
Utworzono nową stronę „<includeonly><!-- -->{{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|}}} | styl = {{{styl plik|}}} | pozycja = brak | opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}} | link…”
551937
wikitext
text/x-wiki
<includeonly><!--
-->{{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|}}}
| styl = {{{styl plik|}}}
| pozycja = brak
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Div|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
ibeygcb5rnazq0ejfxv5kblw0inn47q
551943
551937
2026-08-16T11:03:12Z
Persino
2851
551943
wikitext
text/x-wiki
<includeonly><!--
-->{{Div start|styl=display:inline-block}}<!--
-->{{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|}}}
| styl = {{{styl plik|}}}
| pozycja = brak
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Div|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!--
-->{{Div koniec}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
14j56e4axsb5dbe64fpsp7ic8zl15yz
551947
551943
2026-08-16T11:10:41Z
Persino
2851
Persino przeniósł(-osła) stronę [[Szablon:Link FA/Plik]] do [[Szablon:Link FA/Wikibooks-pozycja]], bez pozostawienia przekierowania pod starym tytułem
551943
wikitext
text/x-wiki
<includeonly><!--
-->{{Div start|styl=display:inline-block}}<!--
-->{{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|}}}
| styl = {{{styl plik|}}}
| pozycja = brak
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Div|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!--
-->{{Div koniec}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
14j56e4axsb5dbe64fpsp7ic8zl15yz
551950
551947
2026-08-16T11:16:06Z
Persino
2851
551950
wikitext
text/x-wiki
<includeonly><!--
-->{{Div start|styl={{{styl tekst|}}}}}<!--
-->{{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|}}}
| styl = {{{styl plik|}}}
| pozycja = brak
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Div|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!--
-->{{Div koniec}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
qlw94d4x3p8ioz2pn7e8kl3e7b7jg3i
551951
551950
2026-08-16T11:18:20Z
Persino
2851
551951
wikitext
text/x-wiki
<includeonly><!--
-->{{Div start|styl={{{styl tekst|}}}}}<!--
-->{{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|}}}
| styl = {{{styl plik|}}}
| pozycja = brak
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Div|styl=display:inline-block|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!--
-->{{Div koniec}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
rte6c88op7oa9ifk41mvzl6s8h417kz
551952
551951
2026-08-16T11:19:36Z
Persino
2851
551952
wikitext
text/x-wiki
<includeonly><!--
-->{{Div start|styl={{{styl tekst|}}}}}<!--
-->{{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|}}}
| styl = {{{styl plik|}}}
| pozycja = brak
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Div|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!--
-->{{Div koniec}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
qlw94d4x3p8ioz2pn7e8kl3e7b7jg3i
551953
551952
2026-08-16T11:23:25Z
Persino
2851
551953
wikitext
text/x-wiki
<includeonly><!--
-->{{Span|styl={{{styl tekst|}}}<!--
-->|{{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|}}}
| styl = {{{styl plik|}}}
| opis = {{Jeśli niepuste|{{{strona|}}}|Podręczniki w wersjach językowych polskiego Wikibooks'a}}
| link = {{{b|en}}}:{{{strona|_}}}
}} {{Span|styl={{{styl tekst|}}}|({{lo|{{Jeśli niepuste|{{{strona|_}}}|_}}|{{ucfirst:{{#invoke:lang|mianownik|{{{b|}}}}}}}|k={{{b|}}}}})}}<!--
-->}}<!--
--></includeonly><noinclude>{{Dokumentacja}}</noinclude>
56cj17lzi5m0xl47jfi28skp1j9fuch
551959
551953
2026-08-16T11:37:16Z
Persino
2851
551959
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}}</noinclude>
1cv48c7opmi9cprc9oa1qtjwj6rvpsm
Szablon:Link FA/style.css
10
63952
551954
2026-08-16T11:33:29Z
Persino
2851
Utworzono nową stronę „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}}*/”
551954
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