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&nbsp;+&nbsp;2}}}} | _1 = {{Chem|C|n|H|2n&nbsp;+&nbsp;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|&amp;#64;}}, czyli: {{Tt|{{s|Porada|argument tekstowy &amp;#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&nbsp;+&nbsp;2}}}} | _1 = {{Chem|C|n|H|2n&nbsp;+&nbsp;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|&amp;#64;}}, czyli: {{Tt|{{s|Porada|argument tekstowy &amp;#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&nbsp;+&nbsp;2}}}} | _1 = {{Chem|C|n|H|2n&nbsp;+&nbsp;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|&amp;#64;}}, czyli: {{Tt|{{s|Porada|argument tekstowy &amp;#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&#124;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&#124;ki) | komórka 10_7 = 3 | wiersze 10_7 = 2 | komórka 11_2 = Użytkowni(k&#124;czka) | komórka 11_6 = Dyskusja użytkowni(ka&#124;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&#124;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&#124;ki) | komórka 10_7 = 3 | wiersze 10_7 = 2 | komórka 11_2 = Użytkowni(k&#124;czka) | komórka 11_6 = Dyskusja użytkowni(ka&#124;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&#124;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&#124;ki) | komórka 10_7 = 3 | wiersze 10_7 = 2 | komórka 11_2 = Użytkowni(k&#124;czka) | komórka 11_6 = Dyskusja użytkowni(ka&#124;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.&nbsp;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.&nbsp;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.&nbsp;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.&nbsp;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.&nbsp;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